add pages to manage returnable products

This commit is contained in:
imperosol
2025-03-07 02:03:22 +01:00
committed by Thomas Girod
parent e7bb08448c
commit eee78008b1
11 changed files with 278 additions and 40 deletions

View File

@ -17,6 +17,7 @@ from counter.models import (
Eticket,
Product,
Refilling,
ReturnableProduct,
StudentCard,
)
from counter.widgets.ajax_select import (
@ -213,6 +214,25 @@ class ProductEditForm(forms.ModelForm):
return ret
class ReturnableProductForm(forms.ModelForm):
class Meta:
model = ReturnableProduct
fields = ["product", "returned_product", "max_return"]
widgets = {
"product": AutoCompleteSelectProduct(),
"returned_product": AutoCompleteSelectProduct(),
}
def save(self, commit: bool = True) -> ReturnableProduct: # noqa FBT
instance: ReturnableProduct = super().save(commit=commit)
if commit:
# This is expensive, but we don't have a task queue to offload it.
# Hopefully, creations and updates of returnable products
# occur very rarely
instance.update_balances()
return instance
class CashSummaryFormBase(forms.Form):
begin_date = forms.DateTimeField(
label=_("Begin date"), widget=SelectDateTime, required=False