From ee4619364d1751b1c877b3047906439a24aacd36 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 21 Sep 2023 19:29:44 +0200 Subject: ✨ Imports: built-in CSV viewer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog/en/changelog_2022-06-15.md | 2 + changelog/fr/changelog_2023-01-25.md | 2 + ishtar_common/models_imports.py | 22 ++++ ishtar_common/static/js/ishtar.js | 4 +- .../ishtar/blocks/import_table_buttons_view.html | 18 +++ .../templates/ishtar/blocks/view_import_csv.html | 32 +++++ .../templates/ishtar/blocks/window_nav.html | 2 +- ishtar_common/templates/ishtar/import_table.html | 146 ++++++++++++++------- ishtar_common/urls.py | 5 + ishtar_common/views.py | 60 ++++++++- scss/custom.scss | 54 ++++++-- 11 files changed, 282 insertions(+), 65 deletions(-) create mode 100644 ishtar_common/templates/ishtar/blocks/import_table_buttons_view.html create mode 100644 ishtar_common/templates/ishtar/blocks/view_import_csv.html diff --git a/changelog/en/changelog_2022-06-15.md b/changelog/en/changelog_2022-06-15.md index e178ff7b0..cf881bdaf 100644 --- a/changelog/en/changelog_2022-06-15.md +++ b/changelog/en/changelog_2022-06-15.md @@ -2,8 +2,10 @@ v4.0.XX - 2099-12-31 -------------------- ### Features/improvements ### +- pre-import forms - imports form: reorganisation of field order - import table : + - built-in CSV viewer - automatic progress refresh - reorganization of fields - improved presentation diff --git a/changelog/fr/changelog_2023-01-25.md b/changelog/fr/changelog_2023-01-25.md index 2f23ed826..b5265c4d0 100644 --- a/changelog/fr/changelog_2023-01-25.md +++ b/changelog/fr/changelog_2023-01-25.md @@ -2,8 +2,10 @@ v4.0.XX - 2099-12-31 -------------------- ### Fonctionnalités/améliorations ### +- ajout de formulaire pré-imports - formulaire d'imports: réorganisation de l'ordre des champs - table des imports : + - visualisateur CSV intégré - raffrachissement automatique de l'avancement - réorganisation des champs - amélioration de la présentation diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index ca0a38832..fce25cedd 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -1397,6 +1397,24 @@ class BaseImport(models.Model): class Meta: abstract = True + @classmethod + def query_can_access(cls, user): + """ + Filter the query to check access permissions + :param user: User instance + :return: import query + """ + q = cls.objects + if user.is_superuser: + return q + ishtar_user = models.IshtarUser.objects.get(pk=user.pk) + q = q.filter(user=ishtar_user) + return q + + @property + def group_prefix(self): + return "" + @property def has_pre_import_form(self) -> bool: raise NotImplemented() @@ -1451,6 +1469,10 @@ class ImportGroup(BaseImport): def __str__(self): return f"{self.name} ({self.importer_type.name})" + @property + def group_prefix(self): + return "group-" + @property def has_pre_import_form(self) -> bool: return False diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index 1656cb427..9797c7d4a 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -955,7 +955,7 @@ function toggle_window_menu(){ return false; } -var register_qa_on_sheet = function(){ +var register_qa = function(){ $(".btn-qa").click(function(){ var target = $(this).attr('data-target'); dt_qa_open(target); @@ -1081,6 +1081,8 @@ var dt_qa_open = function (url, modal_id){ } ); $('#' + modal_id).modal("show"); + let table_scroll_height = $(window).height() - 180; + $(".table-scroll table").height(table_scroll_height + "px"); }, error: function() { close_wait(); diff --git a/ishtar_common/templates/ishtar/blocks/import_table_buttons_view.html b/ishtar_common/templates/ishtar/blocks/import_table_buttons_view.html new file mode 100644 index 000000000..061dfe0f4 --- /dev/null +++ b/ishtar_common/templates/ishtar/blocks/import_table_buttons_view.html @@ -0,0 +1,18 @@ +{% load i18n %} +
+ + + {{ file_label }} + + {% if file_type %} + + + {% endif %} + + + +
diff --git a/ishtar_common/templates/ishtar/blocks/view_import_csv.html b/ishtar_common/templates/ishtar/blocks/view_import_csv.html new file mode 100644 index 000000000..f1b089ce2 --- /dev/null +++ b/ishtar_common/templates/ishtar/blocks/view_import_csv.html @@ -0,0 +1,32 @@ +{% load i18n %} + + diff --git a/ishtar_common/templates/ishtar/blocks/window_nav.html b/ishtar_common/templates/ishtar/blocks/window_nav.html index 41572c5f2..a8c344bae 100644 --- a/ishtar_common/templates/ishtar/blocks/window_nav.html +++ b/ishtar_common/templates/ishtar/blocks/window_nav.html @@ -117,7 +117,7 @@ {% endif %} {% else %} diff --git a/ishtar_common/templates/ishtar/import_table.html b/ishtar_common/templates/ishtar/import_table.html index 3be92d42d..57e28abc3 100644 --- a/ishtar_common/templates/ishtar/import_table.html +++ b/ishtar_common/templates/ishtar/import_table.html @@ -1,7 +1,14 @@ {% load i18n l10n inline_formset %} +{% trans "Source" as source_label %} +{% trans "Media" as media_label %} +{% trans "Result" as result_label %} +{% trans "Error" as error_label %} +{% trans "Match" as match_label %} {% localize off %}