add incomplete status to update view and update other status here
This commit is contained in:
@@ -22,13 +22,13 @@ class BankDataForm(forms.ModelForm):
|
|||||||
|
|
||||||
|
|
||||||
class BillCreateForm(forms.ModelForm):
|
class BillCreateForm(forms.ModelForm):
|
||||||
# bank data
|
# Bank data
|
||||||
name_text = forms.CharField(max_length=128)
|
name_text = forms.CharField(max_length=128)
|
||||||
iban_text = forms.CharField(max_length=34)
|
iban_text = forms.CharField(max_length=34)
|
||||||
bic_text = forms.CharField(max_length=11)
|
bic_text = forms.CharField(max_length=11)
|
||||||
saving = forms.BooleanField()
|
saving = forms.BooleanField()
|
||||||
|
|
||||||
# resolution
|
# Resolution
|
||||||
resolution_text = forms.CharField(max_length=128)
|
resolution_text = forms.CharField(max_length=128)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@@ -78,7 +78,7 @@ class BillCreateForm(forms.ModelForm):
|
|||||||
self.fields["invoice"].cols = 30
|
self.fields["invoice"].cols = 30
|
||||||
self.fields["invoice"].rows = 4
|
self.fields["invoice"].rows = 4
|
||||||
|
|
||||||
# bank data fields
|
# Bank data fields
|
||||||
self.fields["payer"].autofocus = True
|
self.fields["payer"].autofocus = True
|
||||||
|
|
||||||
bank_data = BankData.objects.filter(
|
bank_data = BankData.objects.filter(
|
||||||
@@ -102,14 +102,13 @@ class BillCreateForm(forms.ModelForm):
|
|||||||
self.fields["saving"].label = "Bankdaten speichern."
|
self.fields["saving"].label = "Bankdaten speichern."
|
||||||
self.fields["saving"].required = False
|
self.fields["saving"].required = False
|
||||||
|
|
||||||
# resolution fields
|
# Resolution fields
|
||||||
self.fields["resolution_text"].label = "Beschlussnummer"
|
self.fields["resolution_text"].label = "Beschlussnummer"
|
||||||
self.fields["resolution_text"].required = False
|
self.fields["resolution_text"].required = False
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
cleaned_data = super().clean()
|
cleaned_data = super().clean()
|
||||||
|
|
||||||
# amount = cleaned_data.get("amount")
|
|
||||||
resolution = cleaned_data.get("resolution_text")
|
resolution = cleaned_data.get("resolution_text")
|
||||||
|
|
||||||
payer = cleaned_data.get("payer")
|
payer = cleaned_data.get("payer")
|
||||||
@@ -121,7 +120,7 @@ class BillCreateForm(forms.ModelForm):
|
|||||||
only_digital = cleaned_data.get("only_digital")
|
only_digital = cleaned_data.get("only_digital")
|
||||||
file_field = cleaned_data.get("file_field")
|
file_field = cleaned_data.get("file_field")
|
||||||
|
|
||||||
# check if resolution exists
|
# Check if resolution exists.
|
||||||
if resolution != "":
|
if resolution != "":
|
||||||
try:
|
try:
|
||||||
Resolution.objects.get(id=resolution)
|
Resolution.objects.get(id=resolution)
|
||||||
@@ -130,7 +129,7 @@ class BillCreateForm(forms.ModelForm):
|
|||||||
f"Es gibt keinen Beschluss mit dieser ID. (Eingegebene ID: {resolution})"
|
f"Es gibt keinen Beschluss mit dieser ID. (Eingegebene ID: {resolution})"
|
||||||
)
|
)
|
||||||
|
|
||||||
# check that amount is valid because invalid amount is a NoneType.
|
# Check that amount is valid because invalid amount is a NoneType.
|
||||||
"""
|
"""
|
||||||
if amount:
|
if amount:
|
||||||
if amount > 30 and resolution == "":
|
if amount > 30 and resolution == "":
|
||||||
@@ -140,6 +139,7 @@ class BillCreateForm(forms.ModelForm):
|
|||||||
)
|
)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# If payer is 'Me', you need name, iban and bic data.
|
||||||
if payer == Bill.Payer.ME:
|
if payer == Bill.Payer.ME:
|
||||||
if name == "" or iban == "" or bic == "":
|
if name == "" or iban == "" or bic == "":
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
@@ -147,6 +147,7 @@ class BillCreateForm(forms.ModelForm):
|
|||||||
f"IBAN: '{iban}', BIC: '{bic}')."
|
f"IBAN: '{iban}', BIC: '{bic}')."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# No saving if payer is 'Verein' or you don't want to save bank data.
|
||||||
if payer == Bill.Payer.VEREIN or saving is not True:
|
if payer == Bill.Payer.VEREIN or saving is not True:
|
||||||
cleaned_data["name_text"] = ""
|
cleaned_data["name_text"] = ""
|
||||||
cleaned_data["iban_text"] = ""
|
cleaned_data["iban_text"] = ""
|
||||||
@@ -159,10 +160,17 @@ class BillCreateForm(forms.ModelForm):
|
|||||||
|
|
||||||
|
|
||||||
class BillUpdateForm(forms.ModelForm):
|
class BillUpdateForm(forms.ModelForm):
|
||||||
resolution_text = forms.CharField(max_length=128)
|
# Bank data
|
||||||
name_text = forms.CharField(max_length=128)
|
name_text = forms.CharField(max_length=128)
|
||||||
iban_text = forms.CharField(max_length=34)
|
iban_text = forms.CharField(max_length=34)
|
||||||
bic_text = forms.CharField(max_length=11)
|
bic_text = forms.CharField(max_length=11)
|
||||||
|
saving = forms.BooleanField()
|
||||||
|
|
||||||
|
# only digital bill
|
||||||
|
only_digital_new = forms.BooleanField()
|
||||||
|
|
||||||
|
# Resolution
|
||||||
|
resolution_text = forms.CharField(max_length=128)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Bill
|
model = Bill
|
||||||
@@ -178,6 +186,7 @@ class BillUpdateForm(forms.ModelForm):
|
|||||||
"only_digital",
|
"only_digital",
|
||||||
"file_field",
|
"file_field",
|
||||||
"comment",
|
"comment",
|
||||||
|
"status",
|
||||||
"resolution",
|
"resolution",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -190,7 +199,7 @@ class BillUpdateForm(forms.ModelForm):
|
|||||||
"affiliation": "Abrechnungsbudget",
|
"affiliation": "Abrechnungsbudget",
|
||||||
"payer": "Wie wurde die Rechnung bezahlt?",
|
"payer": "Wie wurde die Rechnung bezahlt?",
|
||||||
"only_digital": "Ich habe nur eine digitale Rechnung.",
|
"only_digital": "Ich habe nur eine digitale Rechnung.",
|
||||||
"file_field": "Rechnung hochladen (PDF)",
|
"file_field": "Neue Rechnung hochladen (PDF)",
|
||||||
"comment": "Kommentar",
|
"comment": "Kommentar",
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -201,48 +210,122 @@ class BillUpdateForm(forms.ModelForm):
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||||
|
|
||||||
|
self.fields["bill_creator"].initial = kwargs["instance"].bill_creator
|
||||||
self.fields["bill_creator"].disabled = True
|
self.fields["bill_creator"].disabled = True
|
||||||
self.fields["date"].disabled = True
|
|
||||||
self.fields["invoice"].disabled = True
|
|
||||||
self.fields["amount"].disabled = True
|
|
||||||
self.fields["purpose"].disabled = True
|
|
||||||
self.fields["affiliation"].disabled = True
|
|
||||||
self.fields["payer"].disabled = True
|
|
||||||
self.fields["only_digital"].disabled = True
|
|
||||||
self.fields["file_field"].disabled = True
|
|
||||||
self.fields["resolution"].disabled = True
|
|
||||||
|
|
||||||
# bank data fields
|
self.fields["status"].disabled = True
|
||||||
if kwargs["instance"].bankdata:
|
|
||||||
self.fields["name_text"].initial = kwargs["instance"].bankdata.name
|
|
||||||
self.fields["iban_text"].initial = kwargs["instance"].bankdata.iban
|
|
||||||
self.fields["bic_text"].initial = kwargs["instance"].bankdata.bic
|
|
||||||
|
|
||||||
self.fields["name_text"].disabled = True
|
# Config for textarea of invoice. Calc rows for a better view.
|
||||||
self.fields["name_text"].label = "Kontoinhaber:in"
|
self.fields["invoice"].cols = 30
|
||||||
self.fields["name_text"].required = False
|
if (rows := kwargs["instance"].invoice.count("\n") + 1) < 3:
|
||||||
|
rows = 3
|
||||||
|
self.fields["invoice"].rows = rows
|
||||||
|
|
||||||
self.fields["iban_text"].disabled = True
|
# Config for textarea of comment. Calc rows for a better view.
|
||||||
self.fields["iban_text"].label = "IBAN"
|
self.fields["comment"].cols = 30
|
||||||
self.fields["iban_text"].required = False
|
rows = kwargs["instance"].comment.count("\n") + 1
|
||||||
|
self.fields["comment"].rows = rows
|
||||||
|
|
||||||
self.fields["bic_text"].disabled = True
|
if kwargs["instance"].status == Bill.Status.INCOMPLETE:
|
||||||
self.fields["bic_text"].label = "BIC"
|
# Bank data fields
|
||||||
self.fields["bic_text"].required = False
|
if kwargs["instance"].bankdata:
|
||||||
|
self.fields["name_text"].initial = kwargs["instance"].bankdata.name
|
||||||
|
self.fields["iban_text"].initial = kwargs["instance"].bankdata.iban
|
||||||
|
self.fields["bic_text"].initial = kwargs["instance"].bankdata.bic
|
||||||
|
self.fields["saving"].initial = True
|
||||||
|
else:
|
||||||
|
self.fields["name_text"].initial = ""
|
||||||
|
self.fields["iban_text"].initial = ""
|
||||||
|
self.fields["bic_text"].initial = ""
|
||||||
|
self.fields["saving"].initial = False
|
||||||
|
|
||||||
# resolution fields
|
self.fields["name_text"].label = "Kontoinhaber:in"
|
||||||
if kwargs["instance"].resolution:
|
self.fields["name_text"].required = False
|
||||||
self.fields["resolution_text"].initial = kwargs["instance"].resolution.name
|
|
||||||
|
|
||||||
self.fields["resolution_text"].disabled = True
|
self.fields["iban_text"].label = "IBAN"
|
||||||
self.fields["resolution_text"].label = "Beschlussnummer"
|
self.fields["iban_text"].required = False
|
||||||
self.fields["resolution_text"].required = False
|
|
||||||
|
|
||||||
# comment disabled when bill is cleared or finished
|
self.fields["bic_text"].label = "BIC"
|
||||||
if kwargs["instance"].status != "S":
|
self.fields["bic_text"].required = False
|
||||||
self.fields["comment"].disabled = True
|
|
||||||
|
|
||||||
self.fields["comment"].autofocus = True
|
self.fields["saving"].label = "Bankdaten speichern."
|
||||||
|
self.fields["saving"].required = False
|
||||||
|
|
||||||
|
# only digital bill field
|
||||||
|
self.fields[
|
||||||
|
"only_digital_new"
|
||||||
|
].label = "Ich habe eine neue digitale Rechnung."
|
||||||
|
self.fields["only_digital_new"].required = False
|
||||||
|
|
||||||
|
# Resolution fields
|
||||||
|
if kwargs["instance"].resolution:
|
||||||
|
_name = kwargs["instance"].resolution.name
|
||||||
|
self.fields["resolution_text"].initial = _name
|
||||||
|
|
||||||
|
self.fields["resolution_text"].label = "Beschlussnummer"
|
||||||
|
self.fields["resolution_text"].required = False
|
||||||
|
|
||||||
|
self.fields["payer"].autofocus = True
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.fields["bill_creator"].disabled = True
|
||||||
|
self.fields["date"].disabled = True
|
||||||
|
self.fields["invoice"].disabled = True
|
||||||
|
self.fields["amount"].disabled = True
|
||||||
|
self.fields["purpose"].disabled = True
|
||||||
|
self.fields["affiliation"].disabled = True
|
||||||
|
self.fields["payer"].disabled = True
|
||||||
|
self.fields["only_digital"].disabled = True
|
||||||
|
self.fields["file_field"].disabled = True
|
||||||
|
self.fields["resolution"].disabled = True
|
||||||
|
|
||||||
|
# Bank data fields
|
||||||
|
if kwargs["instance"].bankdata:
|
||||||
|
self.fields["name_text"].initial = kwargs["instance"].bankdata.name
|
||||||
|
self.fields["name_text"].label = "Kontoinhaber:in"
|
||||||
|
self.fields["name_text"].required = True
|
||||||
|
|
||||||
|
self.fields["iban_text"].initial = kwargs["instance"].bankdata.iban
|
||||||
|
self.fields["iban_text"].label = "IBAN"
|
||||||
|
self.fields["iban_text"].required = True
|
||||||
|
|
||||||
|
self.fields["bic_text"].initial = kwargs["instance"].bankdata.bic
|
||||||
|
self.fields["bic_text"].label = "BIC"
|
||||||
|
self.fields["bic_text"].required = True
|
||||||
|
|
||||||
|
self.fields["saving"].initial = True
|
||||||
|
self.fields["saving"].required = True
|
||||||
|
else:
|
||||||
|
self.fields["name_text"].required = False
|
||||||
|
|
||||||
|
self.fields["iban_text"].required = False
|
||||||
|
|
||||||
|
self.fields["bic_text"].required = False
|
||||||
|
|
||||||
|
self.fields["saving"].required = False
|
||||||
|
self.fields["saving"].initial = False
|
||||||
|
|
||||||
|
self.fields["name_text"].disabled = True
|
||||||
|
self.fields["iban_text"].disabled = True
|
||||||
|
self.fields["bic_text"].disabled = True
|
||||||
|
|
||||||
|
self.fields["saving"].disabled = True
|
||||||
|
self.fields["saving"].label = "Bankdaten sind gespeichert."
|
||||||
|
|
||||||
|
# Resolution fields
|
||||||
|
if kwargs["instance"].resolution:
|
||||||
|
_name = kwargs["instance"].resolution.name
|
||||||
|
self.fields["resolution_text"].initial = _name
|
||||||
|
|
||||||
|
self.fields["resolution_text"].disabled = True
|
||||||
|
self.fields["resolution_text"].label = "Beschlussnummer"
|
||||||
|
self.fields["resolution_text"].required = False
|
||||||
|
|
||||||
|
# Comment disabled when bill is cleared or finished
|
||||||
|
if kwargs["instance"].status != Bill.Status.SUBMITTED:
|
||||||
|
self.fields["comment"].disabled = True
|
||||||
|
|
||||||
|
self.fields["comment"].autofocus = True
|
||||||
|
|
||||||
|
|
||||||
class ResolutionCreateForm(forms.ModelForm):
|
class ResolutionCreateForm(forms.ModelForm):
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class BillCreateView(LoginRequiredMixin, CreateView):
|
|||||||
template_name = "finance/bill_create.html"
|
template_name = "finance/bill_create.html"
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
# get or create resolution object
|
# Get or create resolution object
|
||||||
resolution = form.cleaned_data["resolution_text"]
|
resolution = form.cleaned_data["resolution_text"]
|
||||||
if resolution != "":
|
if resolution != "":
|
||||||
obj, created = Resolution.objects.get_or_create(
|
obj, created = Resolution.objects.get_or_create(
|
||||||
@@ -31,7 +31,7 @@ class BillCreateView(LoginRequiredMixin, CreateView):
|
|||||||
)
|
)
|
||||||
form.instance.resolution = obj
|
form.instance.resolution = obj
|
||||||
|
|
||||||
# get or create bankdata object
|
# Get or create bankdata object. Replace whitespaces in iban and bic text.
|
||||||
name = form.cleaned_data["name_text"]
|
name = form.cleaned_data["name_text"]
|
||||||
iban = form.cleaned_data["iban_text"].replace(" ", "")
|
iban = form.cleaned_data["iban_text"].replace(" ", "")
|
||||||
bic = form.cleaned_data["bic_text"].replace(" ", "")
|
bic = form.cleaned_data["bic_text"].replace(" ", "")
|
||||||
@@ -44,7 +44,7 @@ class BillCreateView(LoginRequiredMixin, CreateView):
|
|||||||
)
|
)
|
||||||
form.instance.bankdata = obj
|
form.instance.bankdata = obj
|
||||||
|
|
||||||
# disable old bank data
|
# Disable old bank data.
|
||||||
qs = BankData.objects.filter(
|
qs = BankData.objects.filter(
|
||||||
~Q(id=obj.id)
|
~Q(id=obj.id)
|
||||||
& Q(bankdata_creator=obj.bankdata_creator)
|
& Q(bankdata_creator=obj.bankdata_creator)
|
||||||
@@ -57,6 +57,8 @@ class BillCreateView(LoginRequiredMixin, CreateView):
|
|||||||
|
|
||||||
def get_form_kwargs(self):
|
def get_form_kwargs(self):
|
||||||
kwargs = super().get_form_kwargs()
|
kwargs = super().get_form_kwargs()
|
||||||
|
|
||||||
|
# Request user for bill creator.
|
||||||
kwargs["user"] = self.request.user
|
kwargs["user"] = self.request.user
|
||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
@@ -86,15 +88,23 @@ class BillUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
|
|||||||
template_name = "finance/bill_update.html"
|
template_name = "finance/bill_update.html"
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
|
# Set status to submitted if changes are valid and bill is incompleted.
|
||||||
|
if self.object.status == Bill.Status.INCOMPLETE:
|
||||||
|
self.object.status = Bill.Status.SUBMITTED
|
||||||
|
|
||||||
|
# Override only_digital db value by value of new only_digital.
|
||||||
|
if "file_field" in form.changed_data:
|
||||||
|
self.object.only_digital = form.cleaned_data["only_digital_new"]
|
||||||
|
|
||||||
add_log_action(self.request, form, "finance", "bill", False)
|
add_log_action(self.request, form, "finance", "bill", False)
|
||||||
return super().form_valid(form)
|
return super().form_valid(form)
|
||||||
|
|
||||||
# call bill if it's only yours
|
# Call bill if it's only yours.
|
||||||
def test_func(self):
|
def test_func(self):
|
||||||
if self.get_object().bill_creator.username == self.request.user.username:
|
if self.get_object().bill_creator.username == self.request.user.username:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
# call handle_no_permissions method
|
# Call handle_no_permissions method.
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def handle_no_permission(self):
|
def handle_no_permission(self):
|
||||||
|
|||||||
@@ -11,6 +11,13 @@
|
|||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% include "baseform/non_field_errors.html" %}
|
{% include "baseform/non_field_errors.html" %}
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<div class="grid grid-cols-1 gap-x-6 gap-y-6 sm:grid-cols-6">
|
||||||
|
<div class="sm:col-span-3">
|
||||||
|
{% include "baseform/select.html" with field=form.status %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Bankdaten</h2>
|
<h2>Bankdaten</h2>
|
||||||
<small>Angaben zu den Bankdaten für die Rückerstattung des Rechnungsbetrags.</small>
|
<small>Angaben zu den Bankdaten für die Rückerstattung des Rechnungsbetrags.</small>
|
||||||
@@ -20,20 +27,29 @@
|
|||||||
{% include "baseform/select.html" with field=form.payer %}
|
{% include "baseform/select.html" with field=form.payer %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if form.name_text.value %}
|
{% if form.payer.value == object.Payer.ME %}
|
||||||
<div class="sm:col-span-4">
|
<div class="sm:col-span-4">
|
||||||
{% include "baseform/text.html" with field=form.name_text %}
|
{% include "baseform/text.html" with field=form.name_text %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
|
||||||
{% if form.iban_text.value %}
|
|
||||||
<div class="sm:col-span-3">
|
<div class="sm:col-span-3">
|
||||||
{% include "baseform/text.html" with field=form.iban_text %}
|
{% include "baseform/text.html" with field=form.iban_text %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
|
||||||
{% if form.bic_text.value %}
|
|
||||||
<div class="sm:col-span-3">
|
<div class="sm:col-span-3">
|
||||||
{% include "baseform/text.html" with field=form.bic_text %}
|
{% include "baseform/text.html" with field=form.bic_text %}
|
||||||
</div>
|
</div>
|
||||||
|
{% elif form.status.value == object.Status.INCOMPLETE %}
|
||||||
|
<div class="sm:col-span-4">
|
||||||
|
{% include "baseform/text.html" with field=form.name_text %}
|
||||||
|
</div>
|
||||||
|
<div class="sm:col-span-3">
|
||||||
|
{% include "baseform/text.html" with field=form.iban_text %}
|
||||||
|
</div>
|
||||||
|
<div class="sm:col-span-3">
|
||||||
|
{% include "baseform/text.html" with field=form.bic_text %}
|
||||||
|
</div>
|
||||||
|
<div class="col-span-full">
|
||||||
|
{% include "baseform/checkbox.html" with field=form.saving %}
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -63,38 +79,65 @@
|
|||||||
type="number"
|
type="number"
|
||||||
name="amount"
|
name="amount"
|
||||||
value={{ form.amount.value }}
|
value={{ form.amount.value }}
|
||||||
required
|
{% if form.amount.field.required %}required{% endif %}
|
||||||
disabled
|
{% if form.amount.field.disabled %}disabled{% endif %}
|
||||||
min="0.00"
|
min="0.00"
|
||||||
step="0.01"
|
step="0.01"
|
||||||
placeholder="123,99"
|
placeholder="123,99"
|
||||||
class="mt-1 block w-full rounded-md border-gray-300 dark:border-none shadow-sm focus:border-none focus:ring focus:ring-blue-200 dark:focus:ring-sky-700 focus:ring-opacity-50"
|
class="w-full"
|
||||||
>
|
>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if form.file_field.value %}
|
{% if form.status.value == object.Status.INCOMPLETE %}
|
||||||
<div class="col-span-full">
|
{% if form.file_field.value %}
|
||||||
{% include "baseform/checkbox.html" with field=form.only_digital %}
|
<div class="col-span-full">
|
||||||
</div>
|
<label>
|
||||||
|
{% if object.only_digital %}
|
||||||
|
<span class="text-gray-700 dark:text-gray-200">Ich habe nur eine digitale Rechnung hochgeladen:</span>
|
||||||
|
{% else %}
|
||||||
|
<span class="text-gray-700 dark:text-gray-200">Hochgeladene Rechnung:</span>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div class="col-span-full">
|
<a
|
||||||
<label>
|
href="{{ form.file_field.value.url }}"
|
||||||
<span class="text-gray-700 dark:text-gray-200">Derzeit:</span>
|
class="text-gray-700 dark:text-gray-200 block w-full mt-1 rounded-md border-gray-300 dark:border-none shadow-sm focus:border-none focus:ring focus:ring-blue-200 dark:focus:ring-sky-700 focus:ring-opacity-50"
|
||||||
|
>{{ form.file_field.value }}</a>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<a
|
<div class="col-span-full">
|
||||||
href="{{ form.file_field.value.url }}"
|
{% include "baseform/file.html" with field=form.file_field %}
|
||||||
class="text-gray-700 dark:text-gray-200 block w-full mt-1 rounded-md border-gray-300 dark:border-none shadow-sm focus:border-none focus:ring focus:ring-blue-200 dark:focus:ring-sky-700 focus:ring-opacity-50"
|
</div>
|
||||||
>{{ form.file_field.value }}</a>
|
<div class="col-span-full">
|
||||||
</label>
|
{% include "baseform/checkbox.html" with field=form.only_digital_new %}
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="col-span-full">
|
{% if form.file_field.value %}
|
||||||
|
<div class="col-span-full">
|
||||||
|
<label>
|
||||||
|
<span class="text-gray-700 dark:text-gray-200">Hochgeladene Rechnung:</span>
|
||||||
|
<a
|
||||||
|
href="{{ form.file_field.value.url }}"
|
||||||
|
class="text-gray-700 dark:text-gray-200 block w-full mt-1 rounded-md border-gray-300 dark:border-none shadow-sm focus:border-none focus:ring focus:ring-blue-200 dark:focus:ring-sky-700 focus:ring-opacity-50"
|
||||||
|
>{{ form.file_field.value }}</a>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
<span class="text-gray-700 dark:text-gray-200">Keine digitale Rechnung eingereicht.</span>
|
{% if form.only_digital.value %}
|
||||||
</div>
|
<div class="col-span-full">
|
||||||
|
{% include "baseform/checkbox.html" with field=form.only_digital %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
<div class="col-span-full">
|
||||||
|
<label>
|
||||||
|
<span class="text-gray-700 dark:text-gray-200">Keine digitale Rechnung eingereicht.</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
@@ -105,10 +148,10 @@
|
|||||||
<div class="sm:col-span-3">
|
<div class="sm:col-span-3">
|
||||||
{% include "baseform/select.html" with field=form.affiliation %}
|
{% include "baseform/select.html" with field=form.affiliation %}
|
||||||
</div>
|
</div>
|
||||||
{% if form.resolution_text.value %}
|
{% if form.status.value == object.Status.INCOMPLETE or form.resolution_text.value %}
|
||||||
<div class="sm:col-span-3">
|
<div class="sm:col-span-3">
|
||||||
{% include "baseform/text.html" with field=form.resolution_text %}
|
{% include "baseform/text.html" with field=form.resolution_text %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in New Issue
Block a user