|
8 | 8 | MoneybirdExternalInvoice, |
9 | 9 | MoneybirdPayment, |
10 | 10 | MoneybirdProject, |
| 11 | + MoneybirdReceipt, |
11 | 12 | ) |
12 | 13 |
|
13 | 14 |
|
@@ -152,3 +153,40 @@ class MoneybirdProjectAdmin(admin.ModelAdmin): |
152 | 153 | ) |
153 | 154 |
|
154 | 155 | search_fields = ("name", "moneybird_id") |
| 156 | + |
| 157 | + |
| 158 | +@admin.register(MoneybirdReceipt) |
| 159 | +class MoneybirdReceiptAdmin(admin.ModelAdmin): |
| 160 | + """Manage moneybird receipts.""" |
| 161 | + |
| 162 | + list_display = ("moneybird_receipt_id", "reimbursement_link") |
| 163 | + search_fields = ( |
| 164 | + "moneybird_receipt_id", |
| 165 | + "moneybird_attachment_id", |
| 166 | + "reimbursement__date_incurred", |
| 167 | + "reimbursement__owner__first_name", |
| 168 | + "reimbursement__owner__last_name", |
| 169 | + "reimbursement__description", |
| 170 | + ) |
| 171 | + raw_id_fields = ("reimbursement",) |
| 172 | + |
| 173 | + def reimbursement_link(self, obj): |
| 174 | + return format_html( |
| 175 | + '<a href="{}">{}</a>', |
| 176 | + reverse( |
| 177 | + "admin:reimbursements_reimbursement_change", |
| 178 | + args=[obj.reimbursement.pk], |
| 179 | + ), |
| 180 | + obj.reimbursement, |
| 181 | + ) |
| 182 | + |
| 183 | + reimbursement_link.short_description = "Reimbursement" |
| 184 | + |
| 185 | + def get_readonly_fields(self, request, obj=None): |
| 186 | + if not obj: |
| 187 | + return () |
| 188 | + return ("reimbursement",) |
| 189 | + |
| 190 | + def get_queryset(self, request): |
| 191 | + qs = super().get_queryset(request) |
| 192 | + return qs.select_related("reimbursement") |
0 commit comments