remove dead code

This commit is contained in:
2025-07-05 12:07:50 +02:00
parent ead98785de
commit 15e8ffc3c8
6 changed files with 0 additions and 521 deletions

View File

@@ -380,152 +380,6 @@ class BillAdmin(admin.ModelAdmin):
) )
# @admin.register(Fee)
# class FeeAdmin(admin.ModelAdmin):
# form = FeeAdminForm
# model = Fee
# list_display = ["id", "amount", "job", "fix_name_desc", "status_colored"]
# list_filter = ["status"]
# show_facets = admin.ShowFacets.ALWAYS
# ordering = ["-id"]
# readonly_fields = [
# "address",
# "get_qrcode",
# ]
# fieldsets = (
# (
# None,
# {
# "fields": (
# "fee_creator",
# "bankdata",
# "address",
# "get_qrcode",
# ),
# },
# ),
# (
# "Tätigkeit",
# {
# "fields": (
# "job",
# "date_start",
# "date_end",
# "amount",
# ),
# },
# ),
# (
# "Sonstiges",
# {
# "fields": (
# "comment",
# "status",
# "file_field",
# ),
# },
# ),
# )
# def add_view(self, request, form_url="", extra_context=None):
# extra_context = extra_context or {}
# extra_context["help_text"] = "Fette Schriften sind Pflichtfelder."
# return super().add_view(
# request,
# form_url,
# extra_context=extra_context,
# )
# def change_view(self, request, object_id, form_url="", extra_context=None):
# extra_context = extra_context or {}
# extra_context["help_text"] = "Fette Schriften sind Pflichtfelder."
# extra_context["generate_fee_pdf"] = True
# return super().change_view(
# request,
# object_id,
# form_url,
# extra_context=extra_context,
# )
# def response_change(self, request, obj):
# if "_generate_fee_pdf" in request.POST:
# if generate_fee_pdf(obj):
# self.message_user(
# request,
# "Neue Honorarnote wurde generiert.",
# messages.SUCCESS,
# )
# else:
# self.message_user(
# request,
# (
# "Das PDF-Dokument konnte nicht generiert werden, da der Status nicht auf "
# "'Eingereicht' gesetzt ist."
# ),
# messages.WARNING,
# )
# return HttpResponseRedirect(".")
# return super().response_change(request, obj)
# def save_model(self, request, obj, form, change):
# # set status to submitted, if a file exists and status is opened.
# if (
# change
# and obj.file_field
# and obj.status == Fee.Status.SUBMITTED
# and "_generate_fee_pdf" not in request.POST
# ):
# obj.status = Fee.Status.APPROVED
# super().save_model(request, obj, form, change)
# @admin.display(description="Adresse")
# def address(self, obj):
# return obj.bankdata.address
# @admin.display(description="QR Code")
# def get_qrcode(self, obj):
# # QR Code is only set if status is approved.
# if obj.status != Fee.Status.APPROVED:
# return "-"
# try:
# qrcode = helpers.make_epc_qr(
# name=obj.bankdata.name,
# iban=obj.bankdata.iban,
# amount=obj.amount,
# text=f"Honorarnote Nr.{obj.id}",
# bic=obj.bankdata.bic,
# encoding="utf-8",
# )
# except Exception:
# return "Daten für QR Code ungültig"
# uri = qrcode.png_data_uri(scale=3.0)
# return format_html('<img src="{}">', uri)
# @admin.display(description="Name")
# def fix_name_desc(self, obj):
# return obj.bankdata.name
# @admin.display(description="Status")
# def status_colored(self, obj):
# # TODO: if there is a status without color, set nothing.
# colors = {
# Fee.Status.SUBMITTED: "red",
# Fee.Status.APPROVED: "darkorange",
# Fee.Status.PAYOUT: "green",
# Fee.Status.CLEARED: "DarkMagenta",
# }
# return format_html(
# '<b style="background:{color};">{status}</b>',
# color=colors[obj.status],
# status=obj.get_status_display(),
# )
@admin.register(Resolution) @admin.register(Resolution)
class ResolutionAdmin(admin.ModelAdmin): class ResolutionAdmin(admin.ModelAdmin):
form = ResolutionAdminForm form = ResolutionAdminForm

View File

@@ -283,171 +283,6 @@ class BillUpdateForm(forms.ModelForm):
return get_cleaned_data(super().clean()) return get_cleaned_data(super().clean())
# class FeeCreateForm(forms.ModelForm):
# # Bank data
# name_text = forms.CharField(required=True, label="Kontoinhaber:in", initial="", max_length=128)
# iban_text = forms.CharField(required=True, label="IBAN", initial="", max_length=34)
# bic_text = forms.CharField(required=True, label="BIC", initial="", max_length=11)
# address_text = forms.CharField(
# required=True, widget=forms.Textarea, label="Adresse", initial=""
# )
# saving = forms.BooleanField(
# required=False,
# label="Bankdaten für die nächsten Rechnungen speichern.",
# initial=False,
# )
# # Conformation
# conformation = forms.BooleanField(
# required=True,
# label=(
# "Hiermit bestätige ich, dass mir die relevanten rechtlichen und steuerlichen "
# "Bestimmungen im Zusammenhang mit Honorarnoten bekannt sind. Ich verpflichte "
# "mich, diese in Übereinstimmung mit den geltenden steuerlichen Vorschriften "
# "ordnungsgemäß zu melden."
# ),
# initial=False,
# )
# class Meta:
# model = Fee
# fields = [
# "fee_creator",
# "job",
# "date_start",
# "date_end",
# "amount",
# "comment",
# ]
# help_texts = {
# "date_end": "Bei einer leeren Eingabe Eingabe wird automatisch das Startdatum gesetzt."
# }
# labels = {
# "job": "Tätigkeitsbeschreibung",
# }
# widgets = {
# "date_start": DateInput(format=("%Y-%m-%d")),
# "date_end": DateInput(format=("%Y-%m-%d")),
# }
# def __init__(self, *args, **kwargs):
# user = kwargs.pop("user") if "user" in kwargs else None
# super().__init__(*args, **kwargs) # to get the self.fields set
# member = Member.objects.get(username=user.username)
# self.fields["fee_creator"].initial = member
# self.fields["fee_creator"].disabled = True
# self.fields["fee_creator"].required = True
# self.fields["date_end"].required = False
# self.fields["address_text"].placeholder = "Straße\nPLZ und Ort"
# # Bank data fields
# bank_data = BankData.objects.filter(
# Q(bankdata_creator=member) & Q(is_disabled=False),
# ).first()
# if bank_data:
# self.fields["name_text"].initial = bank_data.name
# self.fields["iban_text"].initial = bank_data.iban
# self.fields["bic_text"].initial = bank_data.bic
# self.fields["address_text"].initial = bank_data.address
# self.fields["saving"].initial = True
# class FeeUpdateForm(forms.ModelForm):
# # Bank data
# name_text = forms.CharField(required=False, label="Kontoinhaber:in", initial="", max_length=128)
# iban_text = forms.CharField(required=False, label="IBAN", initial="", max_length=34)
# bic_text = forms.CharField(required=False, label="BIC", initial="", max_length=11)
# address_text = forms.CharField(
# required=False, widget=forms.Textarea, label="Adresse", initial=""
# )
# saving = forms.BooleanField(
# required=False,
# label="Bankdaten für die nächsten Rechnungen speichern.",
# initial=False,
# )
# class Meta:
# model = Fee
# fields = [
# "fee_creator",
# "job",
# "date_start",
# "date_end",
# "amount",
# "status",
# "comment",
# ]
# labels = {
# "job": "Tätigkeitsbeschreibung",
# }
# widgets = {
# "date_start": DateInput(format=("%Y-%m-%d")),
# "date_end": DateInput(format=("%Y-%m-%d")),
# }
# def __init__(self, *args, **kwargs):
# super().__init__(*args, **kwargs) # to get the self.fields set
# self.fields["fee_creator"].initial = kwargs["instance"].fee_creator
# self.fields["fee_creator"].disabled = True
# self.fields["fee_creator"].required = True
# self.fields["status"].disabled = True
# # Config for textarea of job. Calc rows for a better view.
# if (rows := kwargs["instance"].job.count("\n") + 1) < 3:
# rows = 3
# self.fields["job"].rows = rows
# self.fields["job"].disabled = True
# self.fields["date_start"].disabled = True
# self.fields["date_end"].disabled = True
# self.fields["amount"].disabled = True
# # Bank data fields
# if kwargs["instance"].bankdata:
# self.fields["name_text"].initial = kwargs["instance"].bankdata.name
# self.fields["name_text"].required = True
# self.fields["iban_text"].initial = kwargs["instance"].bankdata.iban
# self.fields["iban_text"].required = True
# self.fields["bic_text"].initial = kwargs["instance"].bankdata.bic
# self.fields["bic_text"].required = True
# self.fields["address_text"].initial = kwargs["instance"].bankdata.address
# self.fields["saving"].initial = not kwargs["instance"].bankdata.is_disabled
# self.fields["name_text"].disabled = True
# self.fields["iban_text"].disabled = True
# self.fields["bic_text"].disabled = True
# self.fields["address_text"].disabled = True
# self.fields["saving"].disabled = True
# # Config for textarea of comment. Calc rows for a better view.
# rows = kwargs["instance"].comment.count("\n") + 1
# self.fields["comment"].rows = rows
# # 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):
class Meta: class Meta:
model = Resolution model = Resolution
@@ -603,28 +438,6 @@ class BillAdminForm(forms.ModelForm):
self.fields["wiref"].queryset = qs.order_by("-wiref_id") self.fields["wiref"].queryset = qs.order_by("-wiref_id")
# class FeeAdminForm(forms.ModelForm):
# class Meta:
# model = Fee
# fields = "__all__"
# help_texts = {
# "date_end": "Bei einer leeren Eingabe Eingabe wird automatisch das Startdatum gesetzt."
# }
# widgets = {
# "date": DateInput(format=("%Y-%m-%d")),
# }
# def __init__(self, *args, **kwargs):
# super().__init__(*args, **kwargs)
# self.fields["bankdata"].required = True
# self.fields["date_end"].required = False
class ResolutionAdminForm(forms.ModelForm): class ResolutionAdminForm(forms.ModelForm):
total = forms.CharField() total = forms.CharField()
budget_remaining = forms.CharField() budget_remaining = forms.CharField()

View File

@@ -38,71 +38,6 @@ class BankData(models.Model):
self.bic = self.bic.replace(" ", "") self.bic = self.bic.replace(" ", "")
# class Fee(models.Model):
# fee_creator = models.ForeignKey(
# Member,
# on_delete=models.PROTECT,
# blank=True,
# null=True,
# verbose_name="Verantwortliche:r",
# )
# bankdata = models.ForeignKey(
# BankData,
# on_delete=models.SET_NULL,
# blank=True,
# null=True,
# verbose_name="Bankdaten",
# )
# job = models.TextField(verbose_name="Tätigkeit")
# date_start = models.DateField(verbose_name="Start der Tätigkeit")
# date_end = models.DateField(verbose_name="Ende der Tätigkeit")
# amount = models.DecimalField(max_digits=7, decimal_places=2, verbose_name="Betrag (EUR)")
# class Status(models.TextChoices):
# SUBMITTED = "S", "Eingereicht"
# APPROVED = "A", "Für Überweisung freigegeben"
# PAYOUT = "P", "Ausbezahlt"
# CLEARED = "C", "An Dekanat verrechnet"
# status = models.CharField(
# max_length=1,
# choices=Status.choices,
# default=Status.SUBMITTED,
# verbose_name="Status",
# )
# date_created = models.DateTimeField(auto_now_add=True)
# file_field = models.FileField(
# upload_to="uploads/finance/fee/",
# validators=[FileExtensionValidator(["pdf"])],
# blank=True,
# null=True,
# verbose_name="Honorarnote",
# )
# comment = models.TextField(blank=True, default="", verbose_name="Kommentar")
# class Meta:
# verbose_name = "Honorar"
# verbose_name_plural = "Honorare"
# def __str__(self):
# return f"Honorar #{self.id} / {self.job}"
# def save(self, *args, **kwargs):
# if not self.date_end:
# self.date_end = self.date_start
# super().save(*args, **kwargs)
# @property
# def filename(self):
# return Path(self.file_field.name).name
class Resolution(models.Model): class Resolution(models.Model):
id = models.CharField(primary_key=True, max_length=128, verbose_name="Beschlussnummer") id = models.CharField(primary_key=True, max_length=128, verbose_name="Beschlussnummer")
name = models.CharField(max_length=128, verbose_name="Bezeichnung") name = models.CharField(max_length=128, verbose_name="Bezeichnung")

View File

@@ -24,14 +24,6 @@ urlpatterns = [
BillCreateDoneView.as_view(), BillCreateDoneView.as_view(),
name="bill_create_done", name="bill_create_done",
), ),
# # Fee views
# path("create-fee/", FeeCreateView.as_view(), name="fee_create"),
# path(
# "create-fee/<int:pk>/done/",
# FeeCreateDoneView.as_view(),
# name="fee_create_done",
# ),
# path("fee/<int:pk>/", FeeUpdateView.as_view(), name="fee_update"),
# Resolution views # Resolution views
path("create-resolution/", ResolutionCreateView.as_view(), name="resolution_create"), path("create-resolution/", ResolutionCreateView.as_view(), name="resolution_create"),
path("resolutions/", ResolutionListView.as_view(), name="resolution_list"), path("resolutions/", ResolutionListView.as_view(), name="resolution_list"),

View File

@@ -80,58 +80,3 @@ def generate_pdf(wiref):
wiref.file_field.save(wiref_name, File(bytes_stream, wiref_name)) wiref.file_field.save(wiref_name, File(bytes_stream, wiref_name))
return True return True
# def generate_fee_pdf(fee: Fee):
# if not fee or fee.status != Fee.Status.SUBMITTED:
# return False
# # Get data for pdf
# data = {}
# data.update(
# {
# "Full_Name": fee.bankdata.name,
# "Adresse": fee.bankdata.address,
# # Change to the correct date format
# "Date": str(fee.date_created.strftime("%d.%m.%Y")),
# "Honorarnoten-Nummer": str(fee.pk),
# "Taetigkeit_1": fee.job,
# # Change to the correct date format
# "Date_1": str(fee.date_start.strftime("%d.%m.%Y")),
# # Change to the correct date format
# "Date_2": str(fee.date_end.strftime("%d.%m.%Y")),
# # Replace decimal separator from '.' to ','
# "EUR_1": str(fee.amount).replace(".", ","),
# "IBAN": fee.bankdata.iban,
# "BIC": fee.bankdata.bic,
# },
# )
# # Add mail only if a fet user create the fee
# if fee.fee_creator:
# mail = fee.fee_creator.mailaccount
# data.update(
# {
# "Email": mail,
# },
# )
# # Write data in pdf
# pdf_path = Path(Path(__file__).parent) / "static/fee/Honorarnote-Vorlage.pdf"
# reader = PdfReader(pdf_path)
# writer = PdfWriter()
# writer.append(reader)
# writer.update_page_form_field_values(
# writer.pages[0],
# data,
# )
# with io.BytesIO() as bytes_stream:
# writer.write(bytes_stream)
# # Save pdf in fee
# fee_name = f"Honorarnote-{fee.pk}.pdf"
# fee.file_field.save(fee_name, File(bytes_stream, fee_name))
# return True

View File

@@ -89,26 +89,17 @@ class BillListView(LoginRequiredMixin, ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
# context["fee_status"] = Fee.Status
context["bill_status"] = Bill.Status context["bill_status"] = Bill.Status
return context return context
def get_queryset(self): def get_queryset(self):
# qs1 = (
# Fee.objects.filter(fee_creator__username=self.request.user)
# .values("amount", "status", "id")
# .annotate(
# date=F("date_start"), purpose=F("job"), model=Value("FEE", output_field=CharField())
# )
# )
qs = ( qs = (
Bill.objects.filter(bill_creator__username=self.request.user) Bill.objects.filter(bill_creator__username=self.request.user)
.values("amount", "status", "id", "date", "purpose") .values("amount", "status", "id", "date", "purpose")
.annotate(model=Value("BILL", output_field=CharField())) .annotate(model=Value("BILL", output_field=CharField()))
) )
# qs = qs1.union(qs2, all=True)
return qs.order_by("-date", "purpose") return qs.order_by("-date", "purpose")
@@ -146,57 +137,6 @@ class BillUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
return redirect("finance:bill_list") return redirect("finance:bill_list")
# class FeeCreateView(LoginRequiredMixin, CreateView):
# form_class = FeeCreateForm
# model = Fee
# template_name = "finance/fee/create.html"
# def form_valid(self, form):
# # Get or create bankdata object.
# creator = form.cleaned_data["fee_creator"]
# name = form.cleaned_data["name_text"]
# iban = form.cleaned_data["iban_text"]
# bic = form.cleaned_data["bic_text"]
# address = form.cleaned_data["address_text"]
# saving = form.cleaned_data["saving"]
# form.instance.bankdata = set_bankdata(creator, name, iban, bic, saving, address)
# add_log_action(self.request, form, "finance", "fee", True)
# return super().form_valid(form)
# def get_form_kwargs(self):
# kwargs = super().get_form_kwargs()
# # Request user for fee creator.
# kwargs["user"] = self.request.user
# return kwargs
# def get_success_url(self):
# return reverse("finance:fee_create_done", kwargs={"pk": self.object.pk})
# class FeeCreateDoneView(LoginRequiredMixin, TemplateView):
# template_name = "finance/fee/create_done.html"
# class FeeUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
# form_class = FeeUpdateForm
# model = Fee
# success_url = reverse_lazy("finance:bill_list")
# template_name = "finance/fee/update.html"
# def form_valid(self, form):
# add_log_action(self.request, form, "finance", "fee", False)
# return super().form_valid(form)
# # Call fee if it's only yours.
# def test_func(self):
# return self.get_object().fee_creator.username == self.request.user.username
# def handle_no_permission(self):
# return redirect("finance:bill_list")
class ResolutionCreateView(LoginRequiredMixin, CreateView): class ResolutionCreateView(LoginRequiredMixin, CreateView):
form_class = ResolutionCreateForm form_class = ResolutionCreateForm
model = Resolution model = Resolution