More admin controls + Fix pay/success error 500 #45

Merged
valberg merged 2 commits from benjaoming/membersystem:small-fixes into main 2024-08-04 17:12:03 +00:00
5 changed files with 33 additions and 2 deletions
Showing only changes of commit 3af6ae0097 - Show all commits

View file

@ -43,7 +43,9 @@ class OrderAdmin(admin.ModelAdmin):
inlines = (OrderProductInline,) inlines = (OrderProductInline,)
form = OrderAdminForm form = OrderAdminForm
list_display = ("member", "description", "created", "is_paid") list_display = ("member", "description", "created", "is_paid", "total_with_vat")
search_fields = ("member__email", "membership__membership_type__name", "description")
list_filter = ("is_paid", "membership__membership_type")
@admin.register(models.Payment) @admin.register(models.Payment)

View file

@ -4,6 +4,7 @@ from hashlib import md5
from typing import Self from typing import Self
from django.conf import settings from django.conf import settings
from django.contrib import admin
from django.db import models from django.db import models
from django.db.models.aggregates import Sum from django.db.models.aggregates import Sum
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
@ -96,6 +97,11 @@ class Order(CreatedModifiedAbstract):
return sum(item.vat * item.quantity for item in self.items.all()) return sum(item.vat * item.quantity for item in self.items.all())
@property @property
@admin.display(
ordering=None,
description="Total (incl. VAT)",
boolean=False,
)
def total_with_vat(self) -> Money: def total_with_vat(self) -> Money:
"""Return the TOTAL amount WITH VAT.""" """Return the TOTAL amount WITH VAT."""
return self.total + self.total_vat return self.total + self.total_vat

View file

@ -29,6 +29,10 @@ admin.site.unregister(User)
class MembershipAdmin(admin.ModelAdmin): class MembershipAdmin(admin.ModelAdmin):
"""Admin for Membership model.""" """Admin for Membership model."""
list_display = ("user", "period", "membership_type", "activated", "revoked")
list_filter = ("period", "membership_type", "activated", "revoked")
search_fields = ("membership_type__name", "user__email", "user__first_name", "user__last_name")
@admin.register(MembershipType) @admin.register(MembershipType)
class MembershipTypeAdmin(admin.ModelAdmin): class MembershipTypeAdmin(admin.ModelAdmin):

View file

@ -0,0 +1,19 @@
# Generated by Django 5.1b1 on 2024-08-04 10:26
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('membership', '0007_membership_activated_membership_activated_on_and_more'),
]
operations = [
migrations.AlterField(
model_name='membership',
name='membership_type',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='memberships', to='membership.membershiptype', verbose_name='membership type'),
),
]

View file

@ -125,7 +125,7 @@ class Membership(CreatedModifiedAbstract):
membership_type = models.ForeignKey( membership_type = models.ForeignKey(
"membership.MembershipType", "membership.MembershipType",
related_name="memberships", related_name="memberships",
verbose_name=_("subscription type"), verbose_name=_("membership type"),
on_delete=models.PROTECT, on_delete=models.PROTECT,
) )