Skip to content

Commit

Permalink
Rename form modules
Browse files Browse the repository at this point in the history
  • Loading branch information
yalef committed Nov 21, 2023
1 parent c84e0d2 commit 3b34c04
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 67 deletions.
6 changes: 3 additions & 3 deletions import_export_extensions/admin/forms/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
from .base_import_form import ExtendedImportForm
from .export_admin_form import ExportJobAdminForm
from .import_admin_form import ImportJobAdminForm
from .export_job_admin_form import ExportJobAdminForm
from .import_admin_form import ExtendedImportForm
from .import_job_admin_form import ImportJobAdminForm
11 changes: 0 additions & 11 deletions import_export_extensions/admin/forms/base_import_form.py

This file was deleted.

56 changes: 5 additions & 51 deletions import_export_extensions/admin/forms/import_admin_form.py
Original file line number Diff line number Diff line change
@@ -1,57 +1,11 @@
from django import forms
from django.urls import reverse

from ... import models
from ..widgets import ProgressBarWidget
from import_export import forms as base_forms


class ImportJobAdminForm(forms.ModelForm):
"""Admin form for ``ImportJob`` model.
Adds custom `import_progressbar` field that displays current import
progress using AJAX requests to specified endpoint. Fields widget is
defined in `__init__` method.
"""

import_progressbar = forms.Field(
class ExtendedImportForm(base_forms.ImportForm):
"""Import form with `force_import` option."""
force_import = forms.BooleanField(
required=False,
initial=False,
)

def __init__(
self,
instance: models.ImportJob,
*args,
**kwargs,
):
"""Provide `import_progressbar` widget the ``ImportJob`` instance."""
super().__init__(*args, instance=instance, **kwargs)
url_name = "admin:import_job_progress"
self.fields["import_progressbar"].label = (
"Import progress" if
instance.import_status == models.ImportJob.ImportStatus.IMPORTING
else "Parsing progress"
)
self.fields["import_progressbar"].widget = ProgressBarWidget(
job=instance,
url=reverse(url_name, args=(instance.id,)),
)

class Meta:
fields = (
"import_status",
"resource_path",
"data_file",
"resource_kwargs",
"traceback",
"error_message",
"result",
"parse_task_id",
"import_task_id",
"parse_finished",
"import_started",
"import_finished",
"created_by",
"created",
"modified",
)
57 changes: 57 additions & 0 deletions import_export_extensions/admin/forms/import_job_admin_form.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
from django import forms
from django.urls import reverse

from ... import models
from ..widgets import ProgressBarWidget


class ImportJobAdminForm(forms.ModelForm):
"""Admin form for ``ImportJob`` model.
Adds custom `import_progressbar` field that displays current import
progress using AJAX requests to specified endpoint. Fields widget is
defined in `__init__` method.
"""

import_progressbar = forms.Field(
required=False,
)

def __init__(
self,
instance: models.ImportJob,
*args,
**kwargs,
):
"""Provide `import_progressbar` widget the ``ImportJob`` instance."""
super().__init__(*args, instance=instance, **kwargs)
url_name = "admin:import_job_progress"
self.fields["import_progressbar"].label = (
"Import progress" if
instance.import_status == models.ImportJob.ImportStatus.IMPORTING
else "Parsing progress"
)
self.fields["import_progressbar"].widget = ProgressBarWidget(
job=instance,
url=reverse(url_name, args=(instance.id,)),
)

class Meta:
fields = (
"import_status",
"resource_path",
"data_file",
"resource_kwargs",
"traceback",
"error_message",
"result",
"parse_task_id",
"import_task_id",
"parse_finished",
"import_started",
"import_finished",
"created_by",
"created",
"modified",
)
3 changes: 1 addition & 2 deletions import_export_extensions/admin/mixins/import_mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
from django.utils.translation import gettext_lazy as _

from import_export import admin as base_admin
from import_export import forms as base_forms
from import_export import mixins as base_mixins

from ... import models
Expand Down Expand Up @@ -285,7 +284,7 @@ def celery_import_job_results_view(

if job.import_status != models.ImportJob.ImportStatus.PARSED:
# display import form
context["import_form"] = base_forms.ImportForm(
context["import_form"] = ExtendedImportForm(
import_formats=self.get_import_formats(),
)
else:
Expand Down

0 comments on commit 3b34c04

Please sign in to comment.