summaryrefslogtreecommitdiff
path: root/fundraising
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2021-12-20 11:14:05 +0100
committerGitHub <noreply@github.com>2021-12-20 11:14:05 +0100
commit3bd09cc6bab50d5fe8a4cbf653eaf8d16583534a (patch)
tree3c78c757f1aac2a701034088820d3d8bb5b3409d /fundraising
parent67d1afa8fb8e1a1b2263989fbd8d3d3a8ae5b4c5 (diff)
Made fundraising views generate initial id in admin.
Diffstat (limited to 'fundraising')
-rw-r--r--fundraising/admin.py11
-rw-r--r--fundraising/models.py6
2 files changed, 15 insertions, 2 deletions
diff --git a/fundraising/admin.py b/fundraising/admin.py
index 2059e82a..a99f5e9b 100644
--- a/fundraising/admin.py
+++ b/fundraising/admin.py
@@ -3,7 +3,10 @@ from django.db.models import Sum
from sorl.thumbnail.admin import AdminImageMixin
from .admin_views import download_donor_report
-from .models import DjangoHero, Donation, InKindDonor, Payment, Testimonial
+from .models import (
+ DjangoHero, Donation, InKindDonor, Payment, Testimonial,
+ get_fundraising_id,
+)
class DonatedFilter(admin.DateFieldListFilter):
@@ -31,6 +34,9 @@ class DjangoHeroAdmin(AdminImageMixin, admin.ModelAdmin):
ordering = ['-created']
search_fields = ['name', 'email', 'stripe_customer_id']
+ def get_changeform_initial_data(self, request):
+ return {'id': get_fundraising_id()}
+
class PaymentInline(admin.TabularInline):
readonly_fields = ['date']
@@ -58,6 +64,9 @@ class Donation(admin.ModelAdmin):
# references it.
return obj.amount
+ def get_changeform_initial_data(self, request):
+ return {'id': get_fundraising_id()}
+
@admin.register(Payment)
class PaymentAdmin(admin.ModelAdmin):
diff --git a/fundraising/models.py b/fundraising/models.py
index ff8d1479..b93b23df 100644
--- a/fundraising/models.py
+++ b/fundraising/models.py
@@ -31,6 +31,10 @@ class DjangoHeroManager(models.Manager):
return donors.order_by('-donated_amount', 'name')
+def get_fundraising_id():
+ return crypto.get_random_string(length=12)
+
+
class FundraisingModel(models.Model):
id = models.CharField(max_length=12, primary_key=True)
created = models.DateTimeField(default=timezone.now)
@@ -42,7 +46,7 @@ class FundraisingModel(models.Model):
def save(self, *args, **kwargs):
self.modified = timezone.now()
if not self.id:
- self.id = crypto.get_random_string(length=12)
+ self.id = get_fundraising_id()
return super().save(*args, **kwargs)