|
|
|
|
@ -1046,13 +1046,12 @@ class GenerateSeminarReportForm(forms.Form):
|
|
|
|
|
required=False)
|
|
|
|
|
|
|
|
|
|
class GenerateSjrForm(forms.Form):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
|
self.attachments = kwargs.pop('attachments')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
super(GenerateSjrForm,self).__init__(*args,**kwargs)
|
|
|
|
|
self.fields['invoice'] = forms.ChoiceField(choices=self.attachments, label=_('Invoice'))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FreizeitAdmin(CommonAdminMixin, nested_admin.NestedModelAdmin):
|
|
|
|
|
@ -1151,7 +1150,7 @@ class FreizeitAdmin(CommonAdminMixin, nested_admin.NestedModelAdmin):
|
|
|
|
|
return serve_pdf(fp)
|
|
|
|
|
return self.render_seminar_report_options(request, memberlist, GenerateSeminarReportForm())
|
|
|
|
|
seminar_report.short_description = _('Generate seminar report')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def render_sjr_options(self, request, memberlist, form):
|
|
|
|
|
context = dict(self.admin_site.each_context(request),
|
|
|
|
|
title=_('Generate SJR application'),
|
|
|
|
|
@ -1160,7 +1159,7 @@ class FreizeitAdmin(CommonAdminMixin, nested_admin.NestedModelAdmin):
|
|
|
|
|
form=form,
|
|
|
|
|
object=memberlist)
|
|
|
|
|
return render(request, 'admin/generate_sjr_application.html', context=context)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def sjr_application(self, request, memberlist):
|
|
|
|
|
if hasattr(memberlist, 'statement'):
|
|
|
|
|
attachment_names = [f"{b.short_description}: {b.explanation} ({b.amount:.2f}€)" for b in memberlist.statement.bill_set.all() if b.proof]
|
|
|
|
|
@ -1169,7 +1168,7 @@ class FreizeitAdmin(CommonAdminMixin, nested_admin.NestedModelAdmin):
|
|
|
|
|
attachment_names = []
|
|
|
|
|
attachment_paths = []
|
|
|
|
|
attachments = zip(attachment_paths, attachment_names)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not self.may_view_excursion(request, memberlist):
|
|
|
|
|
return self.not_allowed_view(request, memberlist)
|
|
|
|
|
if "apply" in request.POST:
|
|
|
|
|
@ -1177,15 +1176,15 @@ class FreizeitAdmin(CommonAdminMixin, nested_admin.NestedModelAdmin):
|
|
|
|
|
if not form.is_valid():
|
|
|
|
|
messages.error(request, _('Please select an invoice.'))
|
|
|
|
|
return self.render_sjr_options(request, memberlist, form)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
selected_attachments = [form.cleaned_data['invoice']]
|
|
|
|
|
context = memberlist.sjr_application_fields()
|
|
|
|
|
title = memberlist.ljpproposal.title if hasattr(memberlist, 'ljpproposal') else memberlist.name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return fill_pdf_form(title + "_SJR_Antrag", 'members/sjr_template.pdf', context, selected_attachments)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return self.render_sjr_options(request, memberlist, GenerateSjrForm(attachments=attachments))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sjr_application.short_description = _('Generate SJR application')
|
|
|
|
|
|
|
|
|
|
def finance_overview(self, request, memberlist):
|
|
|
|
|
|