diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-12-20 11:14:05 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-20 11:14:05 +0100 |
| commit | 3bd09cc6bab50d5fe8a4cbf653eaf8d16583534a (patch) | |
| tree | 3c78c757f1aac2a701034088820d3d8bb5b3409d /fundraising | |
| parent | 67d1afa8fb8e1a1b2263989fbd8d3d3a8ae5b4c5 (diff) | |
Made fundraising views generate initial id in admin.
Diffstat (limited to 'fundraising')
| -rw-r--r-- | fundraising/admin.py | 11 | ||||
| -rw-r--r-- | fundraising/models.py | 6 |
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) |
