add import and export functionality

This commit is contained in:
Tobias Brunner 2025-05-20 14:26:31 +02:00
parent cc5307a723
commit f14cc0e39e
No known key found for this signature in database
4 changed files with 68 additions and 2 deletions

View file

@ -1,6 +1,10 @@
from django.contrib import admin
from django.utils.html import format_html
from adminsortable2.admin import SortableAdminMixin
from import_export.admin import ImportExportModelAdmin
from import_export import resources
from import_export.fields import Field
from import_export.widgets import ForeignKeyWidget
from .models import (
Category,
@ -188,8 +192,31 @@ class WebsiteFaqAdmin(SortableAdminMixin, admin.ModelAdmin):
ordering = ("order",)
class ComputePlanResource(resources.ModelResource):
cloud_provider = Field(
column_name="cloud_provider",
attribute="cloud_provider",
widget=ForeignKeyWidget(CloudProvider, "name"),
)
class Meta:
model = ComputePlan
skip_unchanged = True
report_skipped = False
import_id_fields = ["name"]
fields = (
"name",
"vcpus",
"ram",
"cpu_mem_ratio",
"price_chf",
"cloud_provider",
)
@admin.register(ComputePlan)
class ComputePlansAdmin(admin.ModelAdmin):
class ComputePlansAdmin(ImportExportModelAdmin):
resource_class = ComputePlanResource
list_display = ("name", "cloud_provider", "vcpus", "ram", "price_chf", "active")
search_fields = ("name", "cloud_provider")
search_fields = ("name", "cloud_provider__name") # Search by cloud_provider name
ordering = ("name",)