diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-08-10 18:13:55 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-04-16 16:38:32 +0200 | 
| commit | 8cbda24660d1dbf50980e1f77c5c12a27e0279f5 (patch) | |
| tree | 0d8c082db7e937e62d3b3ae0fbbfb137c587db2e /ishtar_common/views.py | |
| parent | 78f4c43b6e2ce3d9cd22256ee5f8039cf5915ecd (diff) | |
| download | Ishtar-8cbda24660d1dbf50980e1f77c5c12a27e0279f5.tar.bz2 Ishtar-8cbda24660d1dbf50980e1f77c5c12a27e0279f5.zip  | |
🚸 imports: auto-refresh import state and progress
Diffstat (limited to 'ishtar_common/views.py')
| -rw-r--r-- | ishtar_common/views.py | 35 | 
1 files changed, 34 insertions, 1 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 74691256b..1ab5931e4 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -1535,7 +1535,7 @@ class ImportListView(IshtarMixin, LoginRequiredMixin, ListView):              q2 = q2.filter(user=user)          q1 = q1.filter(group__isnull=True).order_by("-creation_date", "-pk")          q2 = q2.order_by("-creation_date", "-pk") -        return reversed(sorted(list(q1) + list(q2), key=lambda x: x.creation_date)) +        return list(reversed(sorted(list(q1) + list(q2), key=lambda x: x.creation_date)))      def post(self, request, *args, **kwargs):          for field in request.POST: @@ -2029,6 +2029,39 @@ class ImportOldListView(ImportListView):          return q.filter(user=user).order_by("-creation_date") +def import_get_status(request, current_right=None): +    response = {"group": [], "import": []} +    import_ids = request.POST.getlist("items[]", []) +    for import_id in import_ids: +        model = models.Import +        key = "import" +        if import_id.startswith("group-"): +            model = models.ImportGroup +            key = "group" +        idx = import_id.split("-")[-1] +        q = model.objects.filter(pk=idx) +        if not q.count(): +            continue +        item = q.all()[0] +        item_dct = { +            "id": item.id, +            "full_id": ("group-" if key == "group" else "") + str(item.id), +            "state": item.state, +            "status": str(item.status), +        } +        if key == "import": +            item_dct.update({ +                "current_line": item.current_line, +                "number_of_line": item.number_of_line, +                "progress_percent": item.progress_percent, +            }) +        item_dct["actions"] = [(key, str(lbl)) for key, lbl in item.get_actions()] +        response[key].append(item_dct) + +    data = json.dumps(response) +    return HttpResponse(data, content_type="application/json") + +  class ImportLinkView(IshtarMixin, LoginRequiredMixin, ModelFormSetView):      template_name = "ishtar/formset_import_match.html"      model = models.TargetKey  | 
