Skip to content

Commit

Permalink
Merge pull request #15 from maykinmedia/feature/13-excel-import
Browse files Browse the repository at this point in the history
✨[#13] add import export to item admin
  • Loading branch information
Coperh authored Jul 2, 2024
2 parents 6747e91 + 8898354 commit 9673b85
Show file tree
Hide file tree
Showing 6 changed files with 75 additions and 12 deletions.
2 changes: 2 additions & 0 deletions requirements/base.in
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
open-api-framework

django-import-export[xlsx]
13 changes: 11 additions & 2 deletions requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ asgiref==3.8.1
# django-cors-headers
asn1crypto==1.5.1
# via webauthn
async-timeout==4.0.3
# via redis
attrs==23.2.0
# via
# glom
Expand Down Expand Up @@ -70,6 +68,8 @@ cryptography==42.0.5
# mozilla-django-oidc
# pyopenssl
# webauthn
diff-match-patch==20230430
# via django-import-export
django==4.2.11
# via
# commonground-api-common
Expand All @@ -78,6 +78,7 @@ django==4.2.11
# django-cors-headers
# django-filter
# django-formtools
# django-import-export
# django-jsonform
# django-markup
# django-otp
Expand Down Expand Up @@ -113,6 +114,8 @@ django-filter==24.2
# open-api-framework
django-formtools==2.5.1
# via django-two-factor-auth
django-import-export[xlsx]==4.0.9
# via -r requirements/base.in
django-jsonform==2.22.0
# via
# mozilla-django-oidc-db
Expand Down Expand Up @@ -173,6 +176,8 @@ ecs-logging==2.1.0
# via elastic-apm
elastic-apm==6.22.0
# via open-api-framework
et-xmlfile==1.1.0
# via openpyxl
face==20.1.1
# via glom
flower==2.0.1
Expand Down Expand Up @@ -221,6 +226,8 @@ notifications-api-common==0.2.2
# via commonground-api-common
open-api-framework==0.2.0
# via -r requirements/base.in
openpyxl==3.1.4
# via tablib
orderedmultidict==1.0.1
# via furl
oyaml==1.0
Expand Down Expand Up @@ -298,6 +305,8 @@ six==1.16.0
# python-dateutil
sqlparse==0.5.0
# via django
tablib[xlsx]==3.5.0
# via django-import-export
tornado==6.4
# via flower
typing-extensions==4.11.0
Expand Down
23 changes: 19 additions & 4 deletions requirements/ci.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,6 @@ asn1crypto==1.5.1
# via
# -r requirements/base.txt
# webauthn
async-timeout==4.0.3
# via
# -r requirements/base.txt
# redis
attrs==23.2.0
# via
# -r requirements/base.txt
Expand Down Expand Up @@ -115,6 +111,10 @@ cryptography==42.0.5
# mozilla-django-oidc
# pyopenssl
# webauthn
diff-match-patch==20230430
# via
# -r requirements/base.txt
# django-import-export
django==4.2.11
# via
# -r requirements/base.txt
Expand All @@ -124,6 +124,7 @@ django==4.2.11
# django-cors-headers
# django-filter
# django-formtools
# django-import-export
# django-jsonform
# django-markup
# django-otp
Expand Down Expand Up @@ -168,6 +169,8 @@ django-formtools==2.5.1
# via
# -r requirements/base.txt
# django-two-factor-auth
django-import-export[xlsx]==4.0.9
# via -r requirements/base.txt
django-jsonform==2.22.0
# via
# -r requirements/base.txt
Expand Down Expand Up @@ -270,6 +273,10 @@ elastic-apm==6.22.0
# via
# -r requirements/base.txt
# open-api-framework
et-xmlfile==1.1.0
# via
# -r requirements/base.txt
# openpyxl
face==20.1.1
# via
# -r requirements/base.txt
Expand Down Expand Up @@ -372,6 +379,10 @@ notifications-api-common==0.2.2
# commonground-api-common
open-api-framework==0.2.0
# via -r requirements/base.txt
openpyxl==3.1.4
# via
# -r requirements/base.txt
# tablib
orderedmultidict==1.0.1
# via
# -r requirements/base.txt
Expand Down Expand Up @@ -504,6 +515,10 @@ sqlparse==0.5.0
# via
# -r requirements/base.txt
# django
tablib[xlsx]==3.5.0
# via
# -r requirements/base.txt
# django-import-export
tblib==3.0.0
# via -r requirements/test-tools.in
tornado==6.4
Expand Down
30 changes: 25 additions & 5 deletions requirements/dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,6 @@ asn1crypto==1.5.1
# -c requirements/ci.txt
# -r requirements/ci.txt
# webauthn
async-timeout==4.0.3
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
# redis
attrs==23.2.0
# via
# -c requirements/ci.txt
Expand Down Expand Up @@ -155,6 +150,11 @@ cryptography==42.0.5
# mozilla-django-oidc
# pyopenssl
# webauthn
diff-match-patch==20230430
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
# django-import-export
django==4.2.11
# via
# -c requirements/ci.txt
Expand All @@ -167,6 +167,7 @@ django==4.2.11
# django-extensions
# django-filter
# django-formtools
# django-import-export
# django-jsonform
# django-markup
# django-otp
Expand Down Expand Up @@ -220,6 +221,10 @@ django-formtools==2.5.1
# -c requirements/ci.txt
# -r requirements/ci.txt
# django-two-factor-auth
django-import-export[xlsx]==4.0.9
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
django-jsonform==2.22.0
# via
# -c requirements/ci.txt
Expand Down Expand Up @@ -350,6 +355,11 @@ elastic-apm==6.22.0
# -c requirements/ci.txt
# -r requirements/ci.txt
# open-api-framework
et-xmlfile==1.1.0
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
# openpyxl
face==20.1.1
# via
# -c requirements/ci.txt
Expand Down Expand Up @@ -500,6 +510,11 @@ open-api-framework==0.2.0
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
openpyxl==3.1.4
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
# tablib
orderedmultidict==1.0.1
# via
# -c requirements/ci.txt
Expand Down Expand Up @@ -710,6 +725,11 @@ sqlparse==0.5.0
# -r requirements/ci.txt
# django
# django-debug-toolbar
tablib[xlsx]==3.5.0
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
# django-import-export
tblib==3.0.0
# via
# -c requirements/ci.txt
Expand Down
13 changes: 12 additions & 1 deletion src/referentielijsten/api/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,23 @@
from django.utils import timezone
from django.utils.translation import gettext_lazy as _

from import_export import resources
from import_export.admin import ImportExportModelAdmin

from referentielijsten.utils.admin import filter_title

from .admin_list_filters import GeldigListFilter
from .models import Item, Tabel


class ItemResource(resources.ModelResource):

class Meta:
model = Item


@admin.register(Item)
class ItemAdmin(admin.ModelAdmin):
class ItemAdmin(ImportExportModelAdmin):
list_display = ("naam", "code", "tabel", "is_geldig")
list_filter = (
GeldigListFilter,
Expand All @@ -24,6 +33,8 @@ class ItemAdmin(admin.ModelAdmin):
"aanvullende_gegevens",
)

resource_classes = [ItemResource]

@admin.display(description=_("Is geldig"), boolean=True)
def is_geldig(self, obj):
if (
Expand Down
6 changes: 6 additions & 0 deletions src/referentielijsten/conf/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

from django.urls import reverse_lazy

from import_export.formats.base_formats import DEFAULT_FORMATS

from .api import * # noqa
from .utils import config

Expand Down Expand Up @@ -117,6 +119,7 @@
"solo",
"django_jsonform",
"vng_api_common",
"import_export",
# Project applications.
"referentielijsten.accounts",
"referentielijsten.utils",
Expand Down Expand Up @@ -470,3 +473,6 @@
SUBPATH = config("SUBPATH", None)
if SUBPATH:
SUBPATH = f"/{SUBPATH.strip('/')}"


IMPORT_EXPORT_FORMATS = DEFAULT_FORMATS

0 comments on commit 9673b85

Please sign in to comment.