From 15cddfa63328865e3f154b92140650597b4eae91 Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Mon, 9 Dec 2013 13:45:19 -0800 Subject: [PATCH] dollar formatting, eliminate delete checkboxes, eliminate add_another --- planetstack/core/admin.py | 71 ++++++++++++++++++++++++++++++--------- 1 file changed, 56 insertions(+), 15 deletions(-) diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py index 8cd54b2..91a1864 100644 --- a/planetstack/core/admin.py +++ b/planetstack/core/admin.py @@ -902,19 +902,31 @@ def cache_credentials(sender, user, request, **kwds): request.session['auth'] = auth user_logged_in.connect(cache_credentials) -class InvoiceInline(admin.TabularInline): - model = Invoice - extra = 1 - verbose_name_plural = "Invoices" - verbose_name = "Invoice" - exclude = ['enacted'] - fields = ["date", "amount"] - readonly_fields = ["date", "amount"] - suit_classes = 'suit-tab suit-tab-accountinvoice' +def dollar_field(fieldName, short_description): + def newFunc(self, obj): + try: + x= "$ %0.2f" % float(getattr(obj, fieldName, 0.0)) + except: + x=getattr(obj, fieldName, 0.0) + return x + newFunc.short_description = short_description + return newFunc + +def right_dollar_field(fieldName, short_description): + def newFunc(self, obj): + try: + #x= '
$ %0.2f
' % float(getattr(obj, fieldName, 0.0)) + x= '
$ %0.2f
' % float(getattr(obj, fieldName, 0.0)) + except: + x=getattr(obj, fieldName, 0.0) + return x + newFunc.short_description = short_description + newFunc.allow_tags = True + return newFunc class InvoiceChargeInline(admin.TabularInline): model = Charge - extra = 1 + extra = 0 verbose_name_plural = "Charges" verbose_name = "Charge" exclude = ['enacted'] @@ -928,28 +940,53 @@ class InvoiceAdmin(admin.ModelAdmin): fields = ["date", "account", "amount"] readonly_fields = ["date", "account", "amount"] +class InvoiceInline(admin.TabularInline): + model = Invoice + extra = 0 + verbose_name_plural = "Invoices" + verbose_name = "Invoice" + exclude = ['enacted'] + fields = ["date", "dollar_amount"] + readonly_fields = ["date", "dollar_amount"] + suit_classes = 'suit-tab suit-tab-accountinvoice' + can_delete=False + max_num=0 + + dollar_amount = right_dollar_field("amount", "Amount") + class PendingChargeInline(admin.TabularInline): model = Charge - extra = 1 + extra = 0 verbose_name_plural = "Charges" verbose_name = "Charge" exclude = ['enacted', "invoice"] - readonly_fields = ["date", "kind", "state", "object", "coreHours", "amount", "slice"] + fields = ["date", "kind", "state", "object", "coreHours", "dollar_amount", "slice"] + readonly_fields = ["date", "kind", "state", "object", "coreHours", "dollar_amount", "slice"] suit_classes = 'suit-tab suit-tab-accountpendingcharges' + can_delete=False + max_num=0 def queryset(self, request): qs = super(PendingChargeInline, self).queryset(request) qs = qs.filter(state="pending") return qs + dollar_amount = right_dollar_field("amount", "Amount") + class PaymentInline(admin.TabularInline): model=Payment extra = 1 verbose_name_plural = "Payments" verbose_name = "Payment" exclude = ['enacted'] - readonly_fields = ["date", "amount"] + fields = ["date", "dollar_amount"] + readonly_fields = ["date", "dollar_amount"] suit_classes = 'suit-tab suit-tab-accountpayments' + can_delete=False + max_num=0 + + dollar_amount = right_dollar_field("amount", "Amount") + class AccountAdmin(admin.ModelAdmin): list_display = ("site", "balance_due") @@ -957,9 +994,9 @@ class AccountAdmin(admin.ModelAdmin): inlines = [InvoiceInline, PaymentInline, PendingChargeInline] fieldsets = [ - (None, {'fields': ['site', 'balance_due', 'total_invoices', 'total_payments']})] # ,'classes':['suit-tab suit-tab-general']}),] + (None, {'fields': ['site', 'dollar_balance_due', 'dollar_total_invoices', 'dollar_total_payments']})] # ,'classes':['suit-tab suit-tab-general']}),] - readonly_fields = ['site', 'balance_due', 'total_invoices', 'total_payments'] + readonly_fields = ['site', 'dollar_balance_due', 'dollar_total_invoices', 'dollar_total_payments'] suit_form_tabs =( ('general','Account Details'), @@ -968,6 +1005,10 @@ class AccountAdmin(admin.ModelAdmin): ('accountpendingcharges','Pending Charges'), ) + dollar_balance_due = dollar_field("balance_due", "Balance Due") + dollar_total_invoices = dollar_field("total_invoices", "Total Invoices") + dollar_total_payments = dollar_field("total_payments", "Total Payments") + # Now register the new UserAdmin... admin.site.register(User, UserAdmin) -- 2.47.0