libreqda 1.2.0__tar.gz
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.
- libreqda-1.2.0/CHANGELOG.md +481 -0
- libreqda-1.2.0/LICENSE.txt +28 -0
- libreqda-1.2.0/PKG-INFO +131 -0
- libreqda-1.2.0/README.md +73 -0
- libreqda-1.2.0/pyproject.toml +121 -0
- libreqda-1.2.0/scripts/babelrc +8 -0
- libreqda-1.2.0/scripts/dist/LICENSE.txt +33 -0
- libreqda-1.2.0/scripts/dist/RELEASE.txt +23 -0
- libreqda-1.2.0/scripts/dist/macos/libreqda.icns +0 -0
- libreqda-1.2.0/scripts/dist/macos/macos.spec +43 -0
- libreqda-1.2.0/scripts/dist/macos/plist.patch +10 -0
- libreqda-1.2.0/scripts/dist/macos/taguette.icns +0 -0
- libreqda-1.2.0/scripts/dist/macos/taguette_console_wrapper +4 -0
- libreqda-1.2.0/scripts/dist/macos.sh +32 -0
- libreqda-1.2.0/scripts/dist/pyinstaller_entrypoint.py +19 -0
- libreqda-1.2.0/scripts/dist/windows/windows-installer.iss +51 -0
- libreqda-1.2.0/scripts/dist/windows/windows.spec +39 -0
- libreqda-1.2.0/scripts/edugain/worker_update_edugain_idps.py +89 -0
- libreqda-1.2.0/scripts/edugain/worker_update_edugain_idps.sh +9 -0
- libreqda-1.2.0/scripts/make_password_reset_link.py +56 -0
- libreqda-1.2.0/scripts/make_theme.py +99 -0
- libreqda-1.2.0/scripts/new_db_revision.sh +8 -0
- libreqda-1.2.0/scripts/register_user.py +76 -0
- libreqda-1.2.0/scripts/update_pot.sh +33 -0
- libreqda-1.2.0/scripts/update_translations.sh +17 -0
- libreqda-1.2.0/scripts/validate.py +140 -0
- libreqda-1.2.0/scripts/wipe_and_disable_user.py +90 -0
- libreqda-1.2.0/taguette/__init__.py +13 -0
- libreqda-1.2.0/taguette/access_control.py +145 -0
- libreqda-1.2.0/taguette/convert.py +623 -0
- libreqda-1.2.0/taguette/database/__init__.py +177 -0
- libreqda-1.2.0/taguette/database/base.py +9 -0
- libreqda-1.2.0/taguette/database/copy.py +433 -0
- libreqda-1.2.0/taguette/database/models.py +920 -0
- libreqda-1.2.0/taguette/demodata.py +688 -0
- libreqda-1.2.0/taguette/export.py +500 -0
- libreqda-1.2.0/taguette/extract.py +287 -0
- libreqda-1.2.0/taguette/import_codebook.py +110 -0
- libreqda-1.2.0/taguette/l10n/de_DE/LC_MESSAGES/taguette_javascript.mo +0 -0
- libreqda-1.2.0/taguette/l10n/de_DE/LC_MESSAGES/taguette_main.mo +0 -0
- libreqda-1.2.0/taguette/l10n/el_EL/LC_MESSAGES/taguette_javascript.mo +0 -0
- libreqda-1.2.0/taguette/l10n/el_GR/LC_MESSAGES/taguette_javascript.mo +0 -0
- libreqda-1.2.0/taguette/l10n/el_GR/LC_MESSAGES/taguette_main.mo +0 -0
- libreqda-1.2.0/taguette/l10n/en_US/LC_MESSAGES/taguette_javascript.mo +0 -0
- libreqda-1.2.0/taguette/l10n/en_US/LC_MESSAGES/taguette_main.mo +0 -0
- libreqda-1.2.0/taguette/l10n/es_ES/LC_MESSAGES/taguette_javascript.mo +0 -0
- libreqda-1.2.0/taguette/l10n/es_ES/LC_MESSAGES/taguette_main.mo +0 -0
- libreqda-1.2.0/taguette/l10n/fr_FR/LC_MESSAGES/taguette_javascript.mo +0 -0
- libreqda-1.2.0/taguette/l10n/fr_FR/LC_MESSAGES/taguette_main.mo +0 -0
- libreqda-1.2.0/taguette/l10n/id_ID/LC_MESSAGES/taguette_javascript.mo +0 -0
- libreqda-1.2.0/taguette/l10n/id_ID/LC_MESSAGES/taguette_main.mo +0 -0
- libreqda-1.2.0/taguette/l10n/it_IT/LC_MESSAGES/taguette_javascript.mo +0 -0
- libreqda-1.2.0/taguette/l10n/it_IT/LC_MESSAGES/taguette_main.mo +0 -0
- libreqda-1.2.0/taguette/l10n/nl_NL/LC_MESSAGES/taguette_javascript.mo +0 -0
- libreqda-1.2.0/taguette/l10n/nl_NL/LC_MESSAGES/taguette_main.mo +0 -0
- libreqda-1.2.0/taguette/l10n/pt_PT/LC_MESSAGES/taguette_javascript.mo +0 -0
- libreqda-1.2.0/taguette/l10n/pt_PT/LC_MESSAGES/taguette_main.mo +0 -0
- libreqda-1.2.0/taguette/l10n/sv_SE/LC_MESSAGES/taguette_javascript.mo +0 -0
- libreqda-1.2.0/taguette/l10n/sv_SE/LC_MESSAGES/taguette_main.mo +0 -0
- libreqda-1.2.0/taguette/loki_handler.py +107 -0
- libreqda-1.2.0/taguette/main.py +649 -0
- libreqda-1.2.0/taguette/migrations/env.py +72 -0
- libreqda-1.2.0/taguette/migrations/script.py.mako +24 -0
- libreqda-1.2.0/taguette/migrations/versions/09c662cd9483_make_documents_filename_not_null.py +39 -0
- libreqda-1.2.0/taguette/migrations/versions/1b29e68900c1_add_user_roles.py +55 -0
- libreqda-1.2.0/taguette/migrations/versions/1b96a606551d_update_user_to_have_a_display_name.py +34 -0
- libreqda-1.2.0/taguette/migrations/versions/2467bab602b7_add_color_column_to_tags_table.py +33 -0
- libreqda-1.2.0/taguette/migrations/versions/382db36f20f4_add_user_disabled.py +66 -0
- libreqda-1.2.0/taguette/migrations/versions/43d6c240309d_remove_document_groups.py +81 -0
- libreqda-1.2.0/taguette/migrations/versions/447d636f72c5_cascades.py +40 -0
- libreqda-1.2.0/taguette/migrations/versions/491de2dc7cd7_add_indexes.py +51 -0
- libreqda-1.2.0/taguette/migrations/versions/4c55b3b3ff30_user_login_length.py +58 -0
- libreqda-1.2.0/taguette/migrations/versions/61a4abcc8769_user_with_parent_for_permissions.py +40 -0
- libreqda-1.2.0/taguette/migrations/versions/6489b5f9cfb5_increase_password_hash_size.py +34 -0
- libreqda-1.2.0/taguette/migrations/versions/679f625e6e6a_fix_unique_tags.py +59 -0
- libreqda-1.2.0/taguette/migrations/versions/77c4543a5b9b_add_parent_id_column_to_collection_table.py +41 -0
- libreqda-1.2.0/taguette/migrations/versions/7c94b7a31e69_add_is_archived_column_to_projets.py +39 -0
- libreqda-1.2.0/taguette/migrations/versions/7f56de97e3c8_change_edugain_displayname_length.py +42 -0
- libreqda-1.2.0/taguette/migrations/versions/807c0cc0ecf6_remove_invalid_hltags.py +43 -0
- libreqda-1.2.0/taguette/migrations/versions/80b1cc9d4c22_add_user_email.py +35 -0
- libreqda-1.2.0/taguette/migrations/versions/91ade71ccf4d_add_user_language.py +28 -0
- libreqda-1.2.0/taguette/migrations/versions/955db2e523d1_add_collections_tables_and_associations_.py +60 -0
- libreqda-1.2.0/taguette/migrations/versions/a1b2c3d4e5f6_add_user_hide_code_counts.py +28 -0
- libreqda-1.2.0/taguette/migrations/versions/b23f3b7a638e_add_user_password_change_date.py +36 -0
- libreqda-1.2.0/taguette/migrations/versions/b7c1e2d3f4a5_add_project_compact_layout.py +28 -0
- libreqda-1.2.0/taguette/migrations/versions/bc8e0e0677e9_rename_command_fields.py +126 -0
- libreqda-1.2.0/taguette/migrations/versions/bce44849c2f2_lowercase_logins.py +96 -0
- libreqda-1.2.0/taguette/migrations/versions/ca076140922f_update_user_for_external_logins.py +32 -0
- libreqda-1.2.0/taguette/migrations/versions/d86c45d7aa8a_add_document_direction.py +127 -0
- libreqda-1.2.0/taguette/migrations/versions/db5e31a0233d_remove_blank_highlights.py +88 -0
- libreqda-1.2.0/taguette/migrations/versions/dd37d9027a24_unique_tags.py +68 -0
- libreqda-1.2.0/taguette/migrations/versions/de678cef2a94_add_project_id_to_collections_and_.py +41 -0
- libreqda-1.2.0/taguette/migrations/versions/e459991d960e_add_table_edugainidps.py +39 -0
- libreqda-1.2.0/taguette/migrations/versions/e4cf92942271_add_index.py +29 -0
- libreqda-1.2.0/taguette/migrations/versions/e4e090a5b511_remove_commands_document_id_fk.py +38 -0
- libreqda-1.2.0/taguette/migrations/versions/e9a9f1c77971_add_favorite_column_to_document.py +32 -0
- libreqda-1.2.0/taguette/migrations/versions/ecb4065de575_don_t_use_server_default_now_timezone_.py +44 -0
- libreqda-1.2.0/taguette/migrations/versions/fbdc29566f62_edugain_fix_field_type.py +42 -0
- libreqda-1.2.0/taguette/migrations/versions/fdc6eb54b034_add_parent_id_column_to_tags_table.py +31 -0
- libreqda-1.2.0/taguette/static/README.md +34 -0
- libreqda-1.2.0/taguette/static/alt_templates/.gitkeep +0 -0
- libreqda-1.2.0/taguette/static/assets/test/logos/monsters-university-logo.png +0 -0
- libreqda-1.2.0/taguette/static/css/custom.css +1696 -0
- libreqda-1.2.0/taguette/static/css/fa-all.min.css +5 -0
- libreqda-1.2.0/taguette/static/css/themed.css +3 -0
- libreqda-1.2.0/taguette/static/css/themed.css.map +25 -0
- libreqda-1.2.0/taguette/static/css/vendor/bootstrap-treeview.min.css +1 -0
- libreqda-1.2.0/taguette/static/css/vendor/bootstrap.min.css +6 -0
- libreqda-1.2.0/taguette/static/css/vendor/font/context-menu-icons.eot +0 -0
- libreqda-1.2.0/taguette/static/css/vendor/font/context-menu-icons.ttf +0 -0
- libreqda-1.2.0/taguette/static/css/vendor/font/context-menu-icons.woff +0 -0
- libreqda-1.2.0/taguette/static/css/vendor/font/context-menu-icons.woff2 +0 -0
- libreqda-1.2.0/taguette/static/css/vendor/hierarchy-select.min.css +1 -0
- libreqda-1.2.0/taguette/static/css/vendor/introjs.min.css +2 -0
- libreqda-1.2.0/taguette/static/css/vendor/jquery.contextMenu.min.css +16 -0
- libreqda-1.2.0/taguette/static/favicon.ico +0 -0
- libreqda-1.2.0/taguette/static/js/codebook-viz.js +428 -0
- libreqda-1.2.0/taguette/static/js/collection/context-menu.js +180 -0
- libreqda-1.2.0/taguette/static/js/collection/hierarchy-select.js +71 -0
- libreqda-1.2.0/taguette/static/js/collection/manager.js +217 -0
- libreqda-1.2.0/taguette/static/js/document/context-menu.js +92 -0
- libreqda-1.2.0/taguette/static/js/document/custom-select.js +82 -0
- libreqda-1.2.0/taguette/static/js/document/manager.js +943 -0
- libreqda-1.2.0/taguette/static/js/document/treeview.js +593 -0
- libreqda-1.2.0/taguette/static/js/highlight/README.md +18 -0
- libreqda-1.2.0/taguette/static/js/highlight/crud.js +119 -0
- libreqda-1.2.0/taguette/static/js/highlight/extracts.js +497 -0
- libreqda-1.2.0/taguette/static/js/highlight/loader.js +109 -0
- libreqda-1.2.0/taguette/static/js/highlight/renderer.js +405 -0
- libreqda-1.2.0/taguette/static/js/login.js +15 -0
- libreqda-1.2.0/taguette/static/js/permissions.js +153 -0
- libreqda-1.2.0/taguette/static/js/polling-event.js +145 -0
- libreqda-1.2.0/taguette/static/js/project/intro.js +524 -0
- libreqda-1.2.0/taguette/static/js/project/manager.js +0 -0
- libreqda-1.2.0/taguette/static/js/project/search.js +124 -0
- libreqda-1.2.0/taguette/static/js/tag/context-menu.js +133 -0
- libreqda-1.2.0/taguette/static/js/tag/explore-codes.js +400 -0
- libreqda-1.2.0/taguette/static/js/tag/hierarchy-select.js +69 -0
- libreqda-1.2.0/taguette/static/js/tag/manager.js +545 -0
- libreqda-1.2.0/taguette/static/js/tag/treeview.js +613 -0
- libreqda-1.2.0/taguette/static/js/taguette.js +1790 -0
- libreqda-1.2.0/taguette/static/js/utilities.js +714 -0
- libreqda-1.2.0/taguette/static/js/vendor/bootstrap-treeview-custum.js +421 -0
- libreqda-1.2.0/taguette/static/js/vendor/bootstrap-treeview-custum.min.js +1 -0
- libreqda-1.2.0/taguette/static/js/vendor/bootstrap-treeview-default.min.js +1 -0
- libreqda-1.2.0/taguette/static/js/vendor/bootstrap.bundle.min.js +7 -0
- libreqda-1.2.0/taguette/static/js/vendor/bootstrap.bundle.min.js.map +1 -0
- libreqda-1.2.0/taguette/static/js/vendor/hierarchy-select.min.js +1 -0
- libreqda-1.2.0/taguette/static/js/vendor/introjs.min.js +17 -0
- libreqda-1.2.0/taguette/static/js/vendor/jquery-3.7.1.js +2 -0
- libreqda-1.2.0/taguette/static/js/vendor/jquery.contextMenu.min.js +2 -0
- libreqda-1.2.0/taguette/static/libreqda.ico +0 -0
- libreqda-1.2.0/taguette/static/logo-h.png +0 -0
- libreqda-1.2.0/taguette/static/logo.png +0 -0
- libreqda-1.2.0/taguette/static/logo_blanc.png +0 -0
- libreqda-1.2.0/taguette/static/missing.png +0 -0
- libreqda-1.2.0/taguette/static/robots.txt +2 -0
- libreqda-1.2.0/taguette/static/scss/components/_badge.scss +42 -0
- libreqda-1.2.0/taguette/static/scss/components/_button.scss +169 -0
- libreqda-1.2.0/taguette/static/scss/components/_checkbox.scss +40 -0
- libreqda-1.2.0/taguette/static/scss/components/_context_menu.scss +28 -0
- libreqda-1.2.0/taguette/static/scss/components/_custom_select.scss +150 -0
- libreqda-1.2.0/taguette/static/scss/components/_dropdown.scss +43 -0
- libreqda-1.2.0/taguette/static/scss/components/_form.scss +54 -0
- libreqda-1.2.0/taguette/static/scss/components/_modal.scss +57 -0
- libreqda-1.2.0/taguette/static/scss/components/_project_card.scss +163 -0
- libreqda-1.2.0/taguette/static/scss/components/_tag.scss +308 -0
- libreqda-1.2.0/taguette/static/scss/components/_treeview.scss +76 -0
- libreqda-1.2.0/taguette/static/scss/custom.scss +809 -0
- libreqda-1.2.0/taguette/static/scss/layout/_credits.scss +62 -0
- libreqda-1.2.0/taguette/static/scss/layout/_footer.scss +6 -0
- libreqda-1.2.0/taguette/static/scss/layout/_navigation.scss +165 -0
- libreqda-1.2.0/taguette/static/scss/layout/_sidebar.scss +37 -0
- libreqda-1.2.0/taguette/static/scss/themes/default/_variables.scss +103 -0
- libreqda-1.2.0/taguette/static/scss/themes/default/theme.css +3 -0
- libreqda-1.2.0/taguette/static/scss/themes/default/theme.css.map +26 -0
- libreqda-1.2.0/taguette/static/scss/themes/default/theme.scss +4 -0
- libreqda-1.2.0/taguette/static/webfonts/BadScript-OFL.txt +94 -0
- libreqda-1.2.0/taguette/static/webfonts/BadScript.ttf +0 -0
- libreqda-1.2.0/taguette/static/webfonts/Montserrat-Light.ttf +0 -0
- libreqda-1.2.0/taguette/static/webfonts/Montserrat-OFL.txt +93 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-brands-400.eot +0 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-brands-400.svg +1184 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-brands-400.ttf +0 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-brands-400.woff +0 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-brands-400.woff2 +0 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-regular-400.eot +0 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-regular-400.svg +467 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-regular-400.ttf +0 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-regular-400.woff +0 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-regular-400.woff2 +0 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-solid-900.eot +0 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-solid-900.svg +2618 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-solid-900.ttf +0 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-solid-900.woff +0 -0
- libreqda-1.2.0/taguette/static/webfonts/fa-solid-900.woff2 +0 -0
- libreqda-1.2.0/taguette/templates/alt_templates/.gitkeep +0 -0
- libreqda-1.2.0/taguette/templates/archived_projects.html +50 -0
- libreqda-1.2.0/taguette/templates/auth/account.html +74 -0
- libreqda-1.2.0/taguette/templates/auth/cilogon.login.html +89 -0
- libreqda-1.2.0/taguette/templates/auth/email_reset_password.html +5 -0
- libreqda-1.2.0/taguette/templates/auth/external_account.html +60 -0
- libreqda-1.2.0/taguette/templates/auth/login.html +144 -0
- libreqda-1.2.0/taguette/templates/auth/reset_password.html +27 -0
- libreqda-1.2.0/taguette/templates/auth/token_needed.html +7 -0
- libreqda-1.2.0/taguette/templates/base.html +209 -0
- libreqda-1.2.0/taguette/templates/bug_report.html +158 -0
- libreqda-1.2.0/taguette/templates/cookies_prompt.html +15 -0
- libreqda-1.2.0/taguette/templates/downloads.html +127 -0
- libreqda-1.2.0/taguette/templates/email_bug_report.txt +9 -0
- libreqda-1.2.0/taguette/templates/email_reset_password.txt +5 -0
- libreqda-1.2.0/taguette/templates/error.html +8 -0
- libreqda-1.2.0/taguette/templates/export_codebook.html +20 -0
- libreqda-1.2.0/taguette/templates/export_document.html +20 -0
- libreqda-1.2.0/taguette/templates/export_highlights.html +47 -0
- libreqda-1.2.0/taguette/templates/index.html +347 -0
- libreqda-1.2.0/taguette/templates/maintenance.html +8 -0
- libreqda-1.2.0/taguette/templates/messages.js +74 -0
- libreqda-1.2.0/taguette/templates/modal/change_document.html +68 -0
- libreqda-1.2.0/taguette/templates/modal/create_collection.html +100 -0
- libreqda-1.2.0/taguette/templates/modal/create_document.html +84 -0
- libreqda-1.2.0/taguette/templates/modal/create_highlight.html +38 -0
- libreqda-1.2.0/taguette/templates/modal/create_tag.html +73 -0
- libreqda-1.2.0/taguette/templates/modal/explore_codes.html +58 -0
- libreqda-1.2.0/taguette/templates/modal/manage_collaborators.html +44 -0
- libreqda-1.2.0/taguette/templates/modal/merge_tag.html +49 -0
- libreqda-1.2.0/taguette/templates/new_password.html +32 -0
- libreqda-1.2.0/taguette/templates/partials/alert.html +16 -0
- libreqda-1.2.0/taguette/templates/partials/codebook_viz_modal.html +34 -0
- libreqda-1.2.0/taguette/templates/partials/confirm.html +17 -0
- libreqda-1.2.0/taguette/templates/partials/document_toolbar.html +37 -0
- libreqda-1.2.0/taguette/templates/partials/hlinfo.html +13 -0
- libreqda-1.2.0/taguette/templates/partials/project_card.html +44 -0
- libreqda-1.2.0/taguette/templates/partials/project_card_archived.html +41 -0
- libreqda-1.2.0/taguette/templates/partials/project_sidebar.html +99 -0
- libreqda-1.2.0/taguette/templates/partials/spinner.html +11 -0
- libreqda-1.2.0/taguette/templates/permissions.html +54 -0
- libreqda-1.2.0/taguette/templates/project.html +288 -0
- libreqda-1.2.0/taguette/templates/project_delete.html +17 -0
- libreqda-1.2.0/taguette/templates/project_import.html +122 -0
- libreqda-1.2.0/taguette/templates/project_import_codebook.html +34 -0
- libreqda-1.2.0/taguette/templates/project_import_codebook_confirm.html +49 -0
- libreqda-1.2.0/taguette/templates/project_new.html +31 -0
- libreqda-1.2.0/taguette/templates/tos.html +8 -0
- libreqda-1.2.0/taguette/templates/trans.js +7 -0
- libreqda-1.2.0/taguette/templates/welcome.html +15 -0
- libreqda-1.2.0/taguette/utils.py +177 -0
- libreqda-1.2.0/taguette/validate.py +141 -0
- libreqda-1.2.0/taguette/version_check.py +102 -0
- libreqda-1.2.0/taguette/web/__init__.py +252 -0
- libreqda-1.2.0/taguette/web/api.py +1835 -0
- libreqda-1.2.0/taguette/web/base.py +864 -0
- libreqda-1.2.0/taguette/web/export.py +338 -0
- libreqda-1.2.0/taguette/web/views.py +1618 -0
|
@@ -0,0 +1,481 @@
|
|
|
1
|
+
LibreQDA Changelog
|
|
2
|
+
==================
|
|
3
|
+
|
|
4
|
+
1.2.0 (2026-09-10)
|
|
5
|
+
------------------
|
|
6
|
+
- New features:
|
|
7
|
+
- Reworked "Explore codes" with must/can/exclude zones
|
|
8
|
+
- Codebook image export (PNG, SVG)
|
|
9
|
+
- Downloads page (Windows installer, macOS .dmg, pip, Docker) + outdated-version banner on standalone bundles
|
|
10
|
+
- Push message system (in-app banners driven by a JSON file)
|
|
11
|
+
- Native bug report page (multi-screenshot, project selector, "All projects")
|
|
12
|
+
- UX:
|
|
13
|
+
- Codebook compact layout persisted per project
|
|
14
|
+
- "Hide code count badges" preference in account settings
|
|
15
|
+
- Bugfixes:
|
|
16
|
+
- Excluded tags dropped from overlap display; excluded-overlap highlights removed from Explore results
|
|
17
|
+
- Bold text no longer produces double underlines in extracts
|
|
18
|
+
- F5 restores Explore query summary from URL (including single-tag queries)
|
|
19
|
+
- Move code between zones in Explore instead of losing it
|
|
20
|
+
- Language kwargs duplicate crash on rendered pages
|
|
21
|
+
|
|
22
|
+
1.1.4 (2026-07-13)
|
|
23
|
+
------------------
|
|
24
|
+
- Highlights count badge on document treeview (left of document name)
|
|
25
|
+
- Auto-save collaborator changes (add, privileges, remove)
|
|
26
|
+
- Bugfixes:
|
|
27
|
+
- Fix intro.js tutorial after V3 highlight refactor
|
|
28
|
+
- Fix polling events routing highlights to the wrong document
|
|
29
|
+
|
|
30
|
+
1.1.3 (2026-05-20)
|
|
31
|
+
------------------
|
|
32
|
+
- Access rules, filter by IDP (entityid)
|
|
33
|
+
- Bugfixes:
|
|
34
|
+
- Fix search in documents
|
|
35
|
+
- Fix navbar and header in documents when scrolling
|
|
36
|
+
|
|
37
|
+
1.1.2 (2026-04-28)
|
|
38
|
+
------------------
|
|
39
|
+
- Replace login flow with access rules
|
|
40
|
+
|
|
41
|
+
1.1.1 (2026-04-15)
|
|
42
|
+
------------------
|
|
43
|
+
- Optimize highlight rendering performance
|
|
44
|
+
- Update translations
|
|
45
|
+
- Bugfixes:
|
|
46
|
+
- Fix NOT filter exclusion and badge rendering with operators
|
|
47
|
+
- Fix navbar scroll glitch and overflow
|
|
48
|
+
- Fix double underlines on multi-line highlights
|
|
49
|
+
- Fix AND operator to use spatial overlap
|
|
50
|
+
- Fix Dockerfile build and MySQL support for group_array
|
|
51
|
+
- Fix document search hiding uncategorized documents
|
|
52
|
+
- Fix archived project access
|
|
53
|
+
- UI improvements:
|
|
54
|
+
- Overlapping tags clarity (dashed badges, hover to show)
|
|
55
|
+
- Project cards with pagination and search
|
|
56
|
+
- Archive/unarchive projects
|
|
57
|
+
- Compact layout toggle
|
|
58
|
+
- Text preview when clicking on existing codes
|
|
59
|
+
- Show real count in tooltip when badge displays 100+
|
|
60
|
+
|
|
61
|
+
1.1.0 (2026-01-07)
|
|
62
|
+
------------------
|
|
63
|
+
- Document collections
|
|
64
|
+
- Language selector on welcome page
|
|
65
|
+
- Usage tips
|
|
66
|
+
- Update translations
|
|
67
|
+
- Update tests
|
|
68
|
+
- SCSS refactoring
|
|
69
|
+
- Allow theming (custom templates and CSS)
|
|
70
|
+
- Allow to run on Unix socket (MR )
|
|
71
|
+
- Bugfixes:
|
|
72
|
+
- Multiple display issues
|
|
73
|
+
- OAuth cookies
|
|
74
|
+
- Document deletion
|
|
75
|
+
|
|
76
|
+
1.0.2 (2025-07-25)
|
|
77
|
+
------------------
|
|
78
|
+
- Update CILogon authentication template and make it responsive
|
|
79
|
+
- Update translations
|
|
80
|
+
|
|
81
|
+
1.0.1 (2025-06-16)
|
|
82
|
+
------------------
|
|
83
|
+
- OAuth authentication
|
|
84
|
+
- Roles, some users need to be sponsored to create new projects.
|
|
85
|
+
- ADMIN : Can do anything
|
|
86
|
+
- PROJECT_ADMIN : Can create projects and sponsor users
|
|
87
|
+
- TEAM_MEMBER : Can work in existing projects
|
|
88
|
+
- PROJECT_OWNER : Can create projects, cannot sponsor users
|
|
89
|
+
- General UI/UX improvements
|
|
90
|
+
- Code hierarchy
|
|
91
|
+
- Code color
|
|
92
|
+
- Layered color bands
|
|
93
|
+
- Drag & drop codes
|
|
94
|
+
- Filter documents and codes
|
|
95
|
+
- Upload multiple documents
|
|
96
|
+
- Search in documents
|
|
97
|
+
- Complex queries to explore codes with (AND, OR, NOT)
|
|
98
|
+
- General bug fixes
|
|
99
|
+
- Code refactoring
|
|
100
|
+
- Tests optimization
|
|
101
|
+
|
|
102
|
+
0.9.0 (2024-04-03)
|
|
103
|
+
------------------
|
|
104
|
+
|
|
105
|
+
- Based on Taguette 1.4.1
|
|
106
|
+
- Add an option to pass the authentication process to [CI Logon](https://www.cilogon.org/)
|
|
107
|
+
|
|
108
|
+
Taguette Changelog
|
|
109
|
+
==================
|
|
110
|
+
|
|
111
|
+
1.4.1 (2023-02-04)
|
|
112
|
+
------------------
|
|
113
|
+
|
|
114
|
+
Bugfixes:
|
|
115
|
+
* Fix highlighting in tables
|
|
116
|
+
* Fix error adding documents in some situations due to a race condition (seems to only happen when using Redis)
|
|
117
|
+
|
|
118
|
+
1.4.0 (2022-12-16)
|
|
119
|
+
------------------
|
|
120
|
+
|
|
121
|
+
Bugfixes:
|
|
122
|
+
* Fix some validation on project import, filename mangling on document import
|
|
123
|
+
* Relax filename requirements
|
|
124
|
+
* When importing codebook, ignore case when looking at column names
|
|
125
|
+
* Fix the resource usage when using Redis, and avoid dropping events in specific conditions
|
|
126
|
+
* Fix the database warnings shown at startup
|
|
127
|
+
* Fix language setting sometimes being out of sync between devices
|
|
128
|
+
* Don't allow the creation of blank highlights (empty content, for example selecting a newline character)
|
|
129
|
+
|
|
130
|
+
Enhancements:
|
|
131
|
+
* Add Swedish translation
|
|
132
|
+
* Add Indonesian translation
|
|
133
|
+
* Add a script to validate the current database, useful if you have been using it across Taguette versions, or if you're writing to it programmatically
|
|
134
|
+
* When adding a document, automatically change to it
|
|
135
|
+
* Add `EXTRA_FOOTER` config setting to easily add information about a self-hosted instance
|
|
136
|
+
* Enable SQLite's auto_vacuum mode on newly created databases
|
|
137
|
+
* Update the password hashing method to scrypt, more secure
|
|
138
|
+
* Perform password hashing and verification in background threads, to avoid locking up the application for everyone else
|
|
139
|
+
* Prevent clickjacking attacks by serving the relevant headers, in case they are not already set by your reverse proxy
|
|
140
|
+
* Add a script `register_user.py` to register a user even if registration is disabled
|
|
141
|
+
* Allow more HTML tags in imported documents, like tables
|
|
142
|
+
* Add a 'disabled' flag to users and a script to delete all user data (only keeping the 'login' in the database to prevent re-use)
|
|
143
|
+
* Automatically select the new tag when creating a tag from the add/update highlight modal
|
|
144
|
+
|
|
145
|
+
1.3.0 (2022-05-02)
|
|
146
|
+
------------------
|
|
147
|
+
|
|
148
|
+
Bugfixes:
|
|
149
|
+
* Fix JavaScript error when trying to import a SQLite3 file with no projects in it
|
|
150
|
+
* Fix `--database` option when not in server mode
|
|
151
|
+
* Show a more meaningful error if importing an empty SQLite3 file, or a file that is not a SQLite3 database
|
|
152
|
+
* Fix importing a codebook with duplicated tags
|
|
153
|
+
* Fix importing a codebook with empty rows
|
|
154
|
+
* Fix empty lines in log from conversion process
|
|
155
|
+
|
|
156
|
+
Enhancements:
|
|
157
|
+
* Add support for importing subtitle files (.srt or .vtt)
|
|
158
|
+
* Strip leading and trailing whitespace from tag names in imported codebook
|
|
159
|
+
* "Taguette Guide" opens in a new window
|
|
160
|
+
* Add support for serving Taguette in a subdirectory (`BASE_PATH` setting)
|
|
161
|
+
* Add health check endpoint (`/health`)
|
|
162
|
+
* Internationalization improvements: add contexts, translate page titles
|
|
163
|
+
* Add extras to install a database driver: `pip install taguette[postgres]` (or `mysql`)
|
|
164
|
+
* Allow setting SQLAlchemy parameters from the config file, by making `DATABASE` a dictionary
|
|
165
|
+
|
|
166
|
+
1.2.0 (2022-01-22)
|
|
167
|
+
------------------
|
|
168
|
+
|
|
169
|
+
Bugfixes:
|
|
170
|
+
* Add some database indexes, improving performance on larger installations
|
|
171
|
+
* Reload page when the server updates, avoiding clients on older versions if they never close the tab
|
|
172
|
+
* Fix error importing SQLite3 file on Windows (and other permission errors on temporary files)
|
|
173
|
+
* Show a helpful message if the imported codebook has rows that are too short, instead of 500 error
|
|
174
|
+
* Fix a 403 error when importing a project if no other form has been shown before (single-user mode, no project created)
|
|
175
|
+
|
|
176
|
+
Enhancements:
|
|
177
|
+
* Focus the name (path) field when creating a tag
|
|
178
|
+
* Add a keyboard shortcut to create a highlight: 'n' key (localizable)
|
|
179
|
+
* Enable portable install in Windows installer (no admin access)
|
|
180
|
+
|
|
181
|
+
1.1.1 (2021-10-17)
|
|
182
|
+
------------------
|
|
183
|
+
|
|
184
|
+
Bugfixes:
|
|
185
|
+
* Don't cache documents forever in desktop mode (only server mode)
|
|
186
|
+
|
|
187
|
+
1.1.0 (2021-10-12)
|
|
188
|
+
------------------
|
|
189
|
+
|
|
190
|
+
Bugfixes:
|
|
191
|
+
* Avoid error "document name too long" if no name was provided and the filename is used
|
|
192
|
+
* Don't deselect all tags from the highlight modal if it is open while creating a new tag
|
|
193
|
+
* Avoid `TimeoutError` due to the SQLAlchemy connection pool overflowing (mostly affects busy self-hosted non-SQLite deployments)
|
|
194
|
+
|
|
195
|
+
Enhancements:
|
|
196
|
+
* Add support for right-to-left documents
|
|
197
|
+
* Add importing tags from a codebook CSV file
|
|
198
|
+
|
|
199
|
+
1.0.1 (2021-07-22)
|
|
200
|
+
------------------
|
|
201
|
+
|
|
202
|
+
This is a pip-only fix: binary installers, Docker, Poetry install are NOT affected.
|
|
203
|
+
|
|
204
|
+
Bugfixes:
|
|
205
|
+
* Fix incompatibility with SQLAlchemy 1.4
|
|
206
|
+
|
|
207
|
+
1.0.0 (2021-07-17)
|
|
208
|
+
------------------
|
|
209
|
+
|
|
210
|
+
Bugfixes:
|
|
211
|
+
* Fix highlights disappearing when one of their tags is deleted
|
|
212
|
+
* Fix highlight modal showing "no tags" multiple times after removing the last tag repeatedly
|
|
213
|
+
* Add missing title in exported highlights HTML
|
|
214
|
+
|
|
215
|
+
Enhancements:
|
|
216
|
+
* Allow disabling SQLite3 file import from the configuration file
|
|
217
|
+
* Add option to use Redis to coordinate live collaboration if running Taguette in multiple processes
|
|
218
|
+
|
|
219
|
+
0.11 (2021-07-06)
|
|
220
|
+
-----------------
|
|
221
|
+
|
|
222
|
+
Bugfixes:
|
|
223
|
+
* Fix timezone issues on some SQL backends (PostgreSQL, not SQLite). Could cause recorded times to be wrong, and in some cases password reset links could be used multiple times
|
|
224
|
+
* Fix the activity detection used to pause/resume polling
|
|
225
|
+
* Fix default-config command outputing logs about umask, which could be piped into the new config file (for example when using Docker with `-t`)
|
|
226
|
+
* Fix migrations on SQLite failing because of foreign key constraints when recreating tables
|
|
227
|
+
* Fix RTF export
|
|
228
|
+
* Fix retrying Calibre conversion with --enable-heuristics again
|
|
229
|
+
* Fix Calibre leaving behind temporary files if it times out
|
|
230
|
+
|
|
231
|
+
Enhancements:
|
|
232
|
+
* Show more details when document export or import fails
|
|
233
|
+
* Show the number of highlights per tag in exported codebooks
|
|
234
|
+
* Performance improvement of getting a document or tag with many highlights
|
|
235
|
+
* Add terms of service, which you can optionally set in your own instance
|
|
236
|
+
* Made document/highlights/codebook exporting functions available under `taguette.export`, for use in scripts and notebooks
|
|
237
|
+
* Improve button placement in the left panel (put "add a document" and "create a tag" at the top)
|
|
238
|
+
* Add an HTML page for 404 errors
|
|
239
|
+
* Improve error message when Calibre is not found
|
|
240
|
+
* Add support for MariaDB (MySQL doesn't work because of error 1093, see https://stackoverflow.com/q/4429319)
|
|
241
|
+
* Add option to import or export a project as a SQLite3 database
|
|
242
|
+
* Allow a user to remove themselves from a project, without having to ask an admin
|
|
243
|
+
|
|
244
|
+
0.10.1 (2021-02-22)
|
|
245
|
+
-------------------
|
|
246
|
+
|
|
247
|
+
Bugfixes:
|
|
248
|
+
* Limit the number of page buttons
|
|
249
|
+
* SQL query performance improvements
|
|
250
|
+
* Force long document names to wrap (like long tag names)
|
|
251
|
+
|
|
252
|
+
0.10 (2021-02-17)
|
|
253
|
+
-----------------
|
|
254
|
+
|
|
255
|
+
Bugfixes:
|
|
256
|
+
* Check that tags exist in the project before adding them to highlights
|
|
257
|
+
|
|
258
|
+
Enhancements:
|
|
259
|
+
* SEO: Add page titles, robots.txt
|
|
260
|
+
* Remind user of their login in the password reset email
|
|
261
|
+
* Pause polling for changes when the window has been inactive for 10 minutes
|
|
262
|
+
* Improve the error message shown when document import fails
|
|
263
|
+
* Add pagination to the highlights view, which greatly improve performances for heavily used tags
|
|
264
|
+
* Update to Tornado 6.1, remove workaround for older versions
|
|
265
|
+
|
|
266
|
+
0.9.2 (2020-08-26)
|
|
267
|
+
------------------
|
|
268
|
+
|
|
269
|
+
Bugfixes:
|
|
270
|
+
* Fix document conversion on Windows
|
|
271
|
+
|
|
272
|
+
Enhancements:
|
|
273
|
+
* Show spinner while loading document or tag view
|
|
274
|
+
* Show the tag names next to each highlight in document export
|
|
275
|
+
|
|
276
|
+
0.9.1 (2020-08-24)
|
|
277
|
+
------------------
|
|
278
|
+
|
|
279
|
+
Bugfixes:
|
|
280
|
+
* Fix printed link not being flushed, causing it to be inaccessible e.g. running on Docker
|
|
281
|
+
* Fix incompatibility with Python 3.8
|
|
282
|
+
* Close DB connection during long polls, avoiding overflow of connection pool when using PostgreSQL
|
|
283
|
+
* Don't allow a password reset link to be used more than once
|
|
284
|
+
* Fix 'new highlight' button on Microsoft Edge
|
|
285
|
+
* If Calibre fails, run it again without heuristics
|
|
286
|
+
* Fix highlights being off in document export in non-ASCII paragraphs
|
|
287
|
+
|
|
288
|
+
Enhancements:
|
|
289
|
+
* Set umask to 077 by default (and add corresponding command-line options)
|
|
290
|
+
* Restore Python 3.5 compatibility
|
|
291
|
+
* Add a timeout to document conversion
|
|
292
|
+
* Add Calibre output limits to the config
|
|
293
|
+
* Fix some important messages being routed through log instead of direct to terminal
|
|
294
|
+
|
|
295
|
+
0.9 (2019-11-23)
|
|
296
|
+
----------------
|
|
297
|
+
|
|
298
|
+
Bugfixes:
|
|
299
|
+
* Fix showing highlights for a tag with a slash in it
|
|
300
|
+
* Fix new tags showing NaN highlight count
|
|
301
|
+
* Fix export button being on top of text, if the first line is long
|
|
302
|
+
* Fix tag names containing '#' not working properly
|
|
303
|
+
* Fix "new highlight" button showing at the top of the page when scrolling on Safari
|
|
304
|
+
* Sort highlights in the exported highlights view as well
|
|
305
|
+
* Fix merging tags that have common highlights (previous 500 error)
|
|
306
|
+
|
|
307
|
+
Features:
|
|
308
|
+
* Export codebook to Excel (.xlsx)
|
|
309
|
+
* Show error details in alert messages (in English)
|
|
310
|
+
* Highlight the currently selected tag(s) in the left panel
|
|
311
|
+
* Don't show 403 if user can't change collaborators: show explanation, hide button
|
|
312
|
+
* Add export of highlights to CSV and Excel (.xlsx) formats
|
|
313
|
+
* Support PBKDF2 passwords (Taguette no longer requires 'bcrypt')
|
|
314
|
+
|
|
315
|
+
0.8 (2019-06-15)
|
|
316
|
+
----------------
|
|
317
|
+
|
|
318
|
+
Bugfixes:
|
|
319
|
+
* Don't show 500 error on invalid email reset token
|
|
320
|
+
* Explicitly close DB connections, which might help with some warnings
|
|
321
|
+
* Don't show 'merge' button in modal when creating a new tag
|
|
322
|
+
* Fix getting logged out in single-user mode with `--debug`
|
|
323
|
+
* Don't scroll to the top of the document when clicking on a disabled link
|
|
324
|
+
* Fix taguette --database=filename not working when filename does not contain directories
|
|
325
|
+
|
|
326
|
+
Features:
|
|
327
|
+
* Add limits on converted file size
|
|
328
|
+
* Don't have Calibre export image files from PDF, since we don't read them
|
|
329
|
+
* Add a scrollbar to modals, since they can grow big in projects with many tags
|
|
330
|
+
* Use the file name as document name if left blank
|
|
331
|
+
* Show cookie warning before setting any (optional in configuration)
|
|
332
|
+
* Add the REFI-QDA Codebook (.qdc) export format
|
|
333
|
+
* Improve the collaborator management modal
|
|
334
|
+
* Show the number of highlights which each tag in the "highlights" panel
|
|
335
|
+
|
|
336
|
+
0.7 (2019-05-15)
|
|
337
|
+
----------------
|
|
338
|
+
|
|
339
|
+
Taguette can now be translated! You can help bring Taguette to your language on [Transifex](http://transifex.com/remram44/taguette/).
|
|
340
|
+
|
|
341
|
+
Bugfixes:
|
|
342
|
+
* Fix exporting highlights for non-ASCII tags
|
|
343
|
+
* Fix account page not accepting empty optional fields
|
|
344
|
+
* Fix document description being validated as its name
|
|
345
|
+
* Fix importing documents with completely non-ASCII filenames
|
|
346
|
+
|
|
347
|
+
Features:
|
|
348
|
+
* Merge tags
|
|
349
|
+
* Added internationalization
|
|
350
|
+
* French translation
|
|
351
|
+
* German translation
|
|
352
|
+
* Spanish translation
|
|
353
|
+
* Show tag names when hovering a highlight
|
|
354
|
+
|
|
355
|
+
0.6 (2019-04-13)
|
|
356
|
+
----------------
|
|
357
|
+
|
|
358
|
+
Bugfixes:
|
|
359
|
+
* Make 'display' headings responsive
|
|
360
|
+
* Fix exported highlights being called "path"
|
|
361
|
+
* Fix possible weird characters in exported documents on Windows (depending on locale)
|
|
362
|
+
|
|
363
|
+
Features:
|
|
364
|
+
* Convert logins to lower-case (login and collaborator forms will convert too, so it should only affect display). Users with non-lowercase logins will be logged out on update
|
|
365
|
+
* Moved the `SECRET_KEY` to the config, no longer writing to `~/.cache`
|
|
366
|
+
* Let you know when you have been logged out or removed from a project while working
|
|
367
|
+
|
|
368
|
+
0.5 (2019-03-23)
|
|
369
|
+
----------------
|
|
370
|
+
|
|
371
|
+
Bugfixes:
|
|
372
|
+
* Improve reading of OPF output from Calibre, which might fix compatibility with some combinations of Calibre versions and input formats
|
|
373
|
+
* Long tag names no longer stick out of the left pane
|
|
374
|
+
* Sort tags in highlight modal, documents in left pane, highlights and their tags in the highlights view
|
|
375
|
+
|
|
376
|
+
Features:
|
|
377
|
+
* Use a configuration file in server mode, rather than a growing list of command-line options
|
|
378
|
+
* Expose metrics to Prometheus
|
|
379
|
+
* Send errors to Sentry
|
|
380
|
+
* Add 'delete project' button
|
|
381
|
+
* Add account management page, to update email/password
|
|
382
|
+
* Add password recovery feature (if you have an email set)
|
|
383
|
+
* "New highlight" button shows up next to selected text rather than mouse, making it work with touch screens (mobile) and screen readers (hopefully)
|
|
384
|
+
* Convert old .DOC files (Word 97) using WV if available
|
|
385
|
+
* Add collaborator management modal, to add more members to a project
|
|
386
|
+
* Changed default port number from `8000` to `7465`
|
|
387
|
+
* Add spinning icon while requests are in progress, to prevent multiple submission of forms (document add takes ~10s for example)
|
|
388
|
+
|
|
389
|
+
0.4.4 (2018-11-29)
|
|
390
|
+
------------------
|
|
391
|
+
|
|
392
|
+
Bugfixes:
|
|
393
|
+
* Fix error creating a highlight when a paragraph is selected to the end
|
|
394
|
+
* Correctly handle Calibre sometimes writing a `.xhtml` file instead of `.html`
|
|
395
|
+
* Also show highlights with no tags when selecting "See all highlights"
|
|
396
|
+
|
|
397
|
+
0.4.3 (2018-11-17)
|
|
398
|
+
------------------
|
|
399
|
+
|
|
400
|
+
Bugfixes:
|
|
401
|
+
* Fix JavaScript error on a brand new project (no recorded Command)
|
|
402
|
+
* Fix Commands being sent to the wrong project
|
|
403
|
+
|
|
404
|
+
Features:
|
|
405
|
+
* Add `--xheaders` option for the hosted setup, showing correct IPs in the log
|
|
406
|
+
* Show which document in the list is the current one
|
|
407
|
+
|
|
408
|
+
0.4.2 (2018-11-15)
|
|
409
|
+
------------------
|
|
410
|
+
|
|
411
|
+
Bugfixes:
|
|
412
|
+
* Don't show highlights from a different document
|
|
413
|
+
* Handle non-ascii text better
|
|
414
|
+
* Fix real-time updates pausing if two changes happen in the same second
|
|
415
|
+
* Add messages boxes to signal when something goes wrong
|
|
416
|
+
* Sanitize name of uploaded files
|
|
417
|
+
|
|
418
|
+
0.4.1 (2018-11-12)
|
|
419
|
+
------------------
|
|
420
|
+
|
|
421
|
+
Bugfixes:
|
|
422
|
+
* Log errors from async handlers to the console instead of hiding them
|
|
423
|
+
* Work around a problem computing highlight positions in documents when unicode is present (won't crash anymore, but positions might still be off, fix to come)
|
|
424
|
+
* Fix not being able to create tags with names that collide with tags in other projects, and error creating a project if another project still uses default tags
|
|
425
|
+
* Fix exporting a document that has 0 highlights
|
|
426
|
+
* Fix document export missing highlights
|
|
427
|
+
* Fix navbar expand button (shown on smaller screen sizes) not working
|
|
428
|
+
|
|
429
|
+
0.4 (2018-11-11)
|
|
430
|
+
----------------
|
|
431
|
+
|
|
432
|
+
Bugfixes:
|
|
433
|
+
* Make sure to hide auth token from URL bar
|
|
434
|
+
* Fix tag description not showing up
|
|
435
|
+
* Don't allow two tags to have the same name
|
|
436
|
+
|
|
437
|
+
Features:
|
|
438
|
+
* Add confirmation dialogs before deleting tags or documents
|
|
439
|
+
* Create tag from the highlight window
|
|
440
|
+
* New theme matching website (thanks to Vicky Steeves)
|
|
441
|
+
* Add button to create a tag from the highlight modal
|
|
442
|
+
* Show messages from taguette.fr, such as new version available
|
|
443
|
+
* Add export options, allowing you to get your highlights or highlighted documents as HTML, DOCX, or PDF
|
|
444
|
+
* Add HTML and PDF options for codebook export as well
|
|
445
|
+
* Add an option to show (or export) all highlights, rather than only a specific tag
|
|
446
|
+
|
|
447
|
+
0.3 (2018-10-29)
|
|
448
|
+
----------------
|
|
449
|
+
|
|
450
|
+
Bugfixes:
|
|
451
|
+
* Fix having to reload for changes to appear when working on project other than 1.
|
|
452
|
+
* Fix tags not being sorted by name
|
|
453
|
+
|
|
454
|
+
Features:
|
|
455
|
+
* Add 'backlight' mode, fading non-tagged text
|
|
456
|
+
* Add modal dialog to edit and delete documents
|
|
457
|
+
* Add migration system, to automatically upgrade the database to new schema version when required
|
|
458
|
+
|
|
459
|
+
0.2 (2018-10-21)
|
|
460
|
+
----------------
|
|
461
|
+
|
|
462
|
+
Bugfixes:
|
|
463
|
+
* Accept list and numbered lists, as generated from Markdown documents
|
|
464
|
+
* Fix tag modal not able to add tags after a tag has been edited
|
|
465
|
+
|
|
466
|
+
Features:
|
|
467
|
+
* Add single-user mode, the default. Multi-user mode now needs `--multiuser`
|
|
468
|
+
* Add login and registration pages
|
|
469
|
+
* Add codebook export to CSV and DOCX files (contains list of tags with their descriptions)
|
|
470
|
+
|
|
471
|
+
0.1 (2018-10-21)
|
|
472
|
+
----------------
|
|
473
|
+
|
|
474
|
+
First version, proof of concept. Not very useful, but showcases the app, and can be installed by alpha testers.
|
|
475
|
+
|
|
476
|
+
* Can create projects
|
|
477
|
+
* Can import documents into the database as HTML
|
|
478
|
+
* Uses Calibre to convert supported documents into HTML
|
|
479
|
+
* Can highlight parts of documents, and assign tags
|
|
480
|
+
* Real-time notifications and collaboration
|
|
481
|
+
* "Acceptable" UI with bootstrap
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Copyright (c) 2023, Plateforme en humanités numériques (Université de Sherbrooke) and contributors
|
|
2
|
+
Copyright (c) 2018, Remi Rampin and Taguette contributors
|
|
3
|
+
All rights reserved.
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
9
|
+
list of conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
and/or other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
3. Neither the name of the copyright holder nor the names of its contributors
|
|
16
|
+
may be used to endorse or promote products derived from this software
|
|
17
|
+
without specific prior written permission.
|
|
18
|
+
|
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
20
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
21
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
23
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
24
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
27
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
libreqda-1.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: libreqda
|
|
3
|
+
Version: 1.2.0
|
|
4
|
+
Summary: Free and open source qualitative research tool
|
|
5
|
+
Home-page: https://www.libreqda.org/
|
|
6
|
+
License: BSD-3-Clause
|
|
7
|
+
Keywords: qualitative,document,text,tagging,tags,highlights,notes
|
|
8
|
+
Author: Remi Rampin
|
|
9
|
+
Author-email: remi@rampin.org
|
|
10
|
+
Requires-Python: >=3.11,<4
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Environment :: Web Environment
|
|
13
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: JavaScript
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
24
|
+
Classifier: Topic :: Text Processing
|
|
25
|
+
Provides-Extra: mysql
|
|
26
|
+
Provides-Extra: otel
|
|
27
|
+
Provides-Extra: postgres
|
|
28
|
+
Requires-Dist: SQLAlchemy (>=1.4,<1.5)
|
|
29
|
+
Requires-Dist: XlsxWriter (>=1.4,<4)
|
|
30
|
+
Requires-Dist: alembic (>=1.6,<1.9)
|
|
31
|
+
Requires-Dist: beautifulsoup4
|
|
32
|
+
Requires-Dist: bleach (>=3,<6)
|
|
33
|
+
Requires-Dist: chardet (>=4,<6)
|
|
34
|
+
Requires-Dist: cryptography ; extra == "mysql"
|
|
35
|
+
Requires-Dist: html5lib (>=1,<2)
|
|
36
|
+
Requires-Dist: jinja2 (>=3.1,<3.2)
|
|
37
|
+
Requires-Dist: libsass (==0.22.0)
|
|
38
|
+
Requires-Dist: oauth2client (>=4.1.3,<5.0.0)
|
|
39
|
+
Requires-Dist: opentelemetry-api (>=1.5,<1.11)
|
|
40
|
+
Requires-Dist: opentelemetry-distro ; extra == "otel"
|
|
41
|
+
Requires-Dist: opentelemetry-instrumentation-sqlalchemy (>=0.24b0,<0.26) ; extra == "otel"
|
|
42
|
+
Requires-Dist: opentelemetry-instrumentation-tornado (>=0.24b0,<0.26) ; extra == "otel"
|
|
43
|
+
Requires-Dist: prometheus-async
|
|
44
|
+
Requires-Dist: prometheus-client
|
|
45
|
+
Requires-Dist: psycopg2 (>=2.8,<3) ; extra == "postgres"
|
|
46
|
+
Requires-Dist: pymysql (>=1.0,<2) ; extra == "mysql"
|
|
47
|
+
Requires-Dist: redis (>=3,<5)
|
|
48
|
+
Requires-Dist: requests (>=2.31.0,<3.0.0)
|
|
49
|
+
Requires-Dist: sentry-sdk
|
|
50
|
+
Requires-Dist: setuptools (>=65,<81) ; python_version >= "3.11"
|
|
51
|
+
Requires-Dist: subtitle-parser (>=1,<2)
|
|
52
|
+
Requires-Dist: tornado (>=6.1)
|
|
53
|
+
Project-URL: Bug Tracker, https://gitlab.com/bin-cirst/libreqda/libre-qda/-/issues
|
|
54
|
+
Project-URL: Documentation, https://aide.libreqda.org
|
|
55
|
+
Project-URL: Repository, https://gitlab.com/bin-cirst/libreqda/libre-qda
|
|
56
|
+
Description-Content-Type: text/markdown
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
_We are building on the work of [Taguette](https://www.taguette.org/) — go check them out! You will find close alignments between our code bases and even the installation instructions._
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
LibreQDA
|
|
63
|
+
========
|
|
64
|
+
|
|
65
|
+
LibreQDA is developed by the [Plateforme en humanités numériques (PhuN)](https://www.usherbrooke.ca/flsh/recherche/centres-groupes-et-equipes-de-recherche/phun) at Université de Sherbrooke.
|
|
66
|
+
|
|
67
|
+
This qualitative data analysis software (QDA) allows you to:
|
|
68
|
+
|
|
69
|
+
+ Import PDFs, Word documents (`.docx`), text files (`.txt`), HTML, EPUB, MOBI, Open Documents (`.odt`), and Rich Text Files (`.rtf`).
|
|
70
|
+
+ Highlight words, sentences or paragraphs and tag them with codes you create.
|
|
71
|
+
+ Create hierarchical relations between your codes.
|
|
72
|
+
+ Retrieve your tagged documents and lists of encoded sentences.
|
|
73
|
+
+ Export you material in various formats for diffusion or post-processing with other tools.
|
|
74
|
+
|
|
75
|
+
[Visit our website to consult the documentation.](https://help.libreqda.org/)
|
|
76
|
+
|
|
77
|
+
Motivation and Goal
|
|
78
|
+
-------------------
|
|
79
|
+
|
|
80
|
+
Through its collaborations with research teams and non-profit organizations across various fields, the team at PHuN has come to recognize the crucial need for developing rich, resilient and responsive ecosystem of open-source QDA software. Numerous testimonies highlight the disconnect between the commercial incentives of proprietary software and the core theories of substantive qualitative analysis. Today, users of QDA are subjected to forced obsolescence, costly licenses, black box features and data restrictions that prevent them from fully owning their intellectual product.
|
|
81
|
+
|
|
82
|
+
Our goal is to position LibreQDA as a valuable component within a diverse array of resources available to users seeking to develop a rich understanding of their textual data. We are committed to continuous improvement through community feedback and advocate for open integration with other tools to best meet your needs.
|
|
83
|
+
|
|
84
|
+
If you think LibreQDA could do something better, reach out!
|
|
85
|
+
|
|
86
|
+
Installation
|
|
87
|
+
------------
|
|
88
|
+
|
|
89
|
+
A secure instance of LibreQDA running on Canadian servers is available at [https://www.libreqda.org/](https://www.libreqda.org/). You can clone the software and run a single-user version on your computer using the instructions below. Installers for Windows and MacOS are pending.
|
|
90
|
+
|
|
91
|
+
Docker
|
|
92
|
+
------
|
|
93
|
+
|
|
94
|
+
docker pull phunudes/libreqda
|
|
95
|
+
docker run -d -p 7465:7465 -v libreqda-data:/data phunudes/libreqda
|
|
96
|
+
|
|
97
|
+
Browse to [localhost:7465](http://localhost:7465/). Data persists in the `libreqda-data` volume.
|
|
98
|
+
|
|
99
|
+
Development Setup from the Repository
|
|
100
|
+
-------------------------------------
|
|
101
|
+
|
|
102
|
+
You can install from a local clone of this repository, which will allow you to easily change the sources to suit your needs. Taguette provide the base infrastructure for LibreQDA, which is reflected in these instructions:
|
|
103
|
+
|
|
104
|
+
1. Clone this git repository from the terminal: `git clone https://gitlab.com/bin-cirst/libreqda/libre-qda/`
|
|
105
|
+
2. Navigate on the command line to the repository you've just cloned locally, using the `cd` command. To get help using `cd`, use [this tutorial](https://swcarpentry.github.io/shell-novice/02-filedir/index.html).
|
|
106
|
+
3. LibreQDA uses [Poetry](https://python-poetry.org/) for its packaging and dependency management. You will need to [install Poetry](https://python-poetry.org/docs/#installation).
|
|
107
|
+
4. Install LibreQDA and its dependencies by running `poetry install`. Poetry will create a virtual environment for you by default, activate it by running `poetry shell`.
|
|
108
|
+
- To install dependencies for mysql or postgres, use the following command `poetry install -E postgres`.
|
|
109
|
+
5. Build translation files using `scripts/update_translations.sh`.
|
|
110
|
+
6. You can start LibreQDA in development mode using `taguette --debug` (or `taguette --debug server <config_file>`). This will start Tornado in debug mode, which means in particular that it will auto-restart every time you make changes.
|
|
111
|
+
1. A config file can be created by running `taguette default-config > taguette.conf`
|
|
112
|
+
7. Navigate to [localhost:7465](http://localhost:7465/) to use LibreQDA!
|
|
113
|
+
|
|
114
|
+
Create custom theme
|
|
115
|
+
-------------------
|
|
116
|
+
|
|
117
|
+
You can entirely configure LibreQDA interface by creating a theme.
|
|
118
|
+
|
|
119
|
+
1. Run `poetry run make-theme [theme-name]`. That will create 2 folders :
|
|
120
|
+
- `taguette/static/scss/themes/[theme-name]` where the custom css are stored
|
|
121
|
+
- `taguette/templates/alt_templates/[theme-name]` where you can override templates with the same hierarchy as in the `templates` folder
|
|
122
|
+
- `taguette/static/alt_templates/[theme-name]` where you can put the files that you want to access in your custom template
|
|
123
|
+
2. Add this line in `taguette.conf`: `THEME = "theme-name"`
|
|
124
|
+
|
|
125
|
+
License
|
|
126
|
+
-------
|
|
127
|
+
* Copyright (c) 2023, Plateforme en humanités numériques (Université de Sherbrooke) and contributors
|
|
128
|
+
* Copyright (c) 2018, Remi Rampin and Taguette contributors
|
|
129
|
+
|
|
130
|
+
Licensed under a **BSD 3-clause "New" or "Revised" License**. See the `LICENSE.txt` file for details.
|
|
131
|
+
|