vbv/server/vbv_lernwelt/shop/admin.py

56 lines
1.3 KiB
Python

from django.contrib import admin
from vbv_lernwelt.shop.models import CheckoutInformation, Country, Product
from vbv_lernwelt.shop.services import get_transaction_state
@admin.action(description="ABACUS: Create invoices")
def generate_invoice(modeladmin, request, queryset):
pass
@admin.action(description="DATATRANS: Sync transaction states")
def sync_transaction_state(modeladmin, request, queryset):
for checkout in queryset:
state = get_transaction_state(transaction_id=checkout.transaction_id)
checkout.state = state.value
checkout.save(
update_fields=[
"state",
]
)
@admin.register(CheckoutInformation)
class CheckoutInformationAdmin(admin.ModelAdmin):
list_display = (
"product_sku",
"user",
"product_name",
"product_price",
"updated_at",
"state",
"invoice_transmitted_at",
)
actions = [generate_invoice, sync_transaction_state]
@admin.register(Country)
class CountryAdmin(admin.ModelAdmin):
list_display = (
"country_id",
"name_de",
"name_fr",
"name_it",
)
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
list_display = (
"sku",
"name",
"price",
"description",
)