feat: generando vista de compra con formularios de django.
This commit is contained in:
		@@ -1,4 +1,39 @@
 | 
				
			|||||||
from django import forms
 | 
					from django import forms
 | 
				
			||||||
 | 
					from django.forms.widgets import DateInput
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from .models import Sale, SaleLine
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ImportProductsForm(forms.Form):
 | 
					class ImportProductsForm(forms.Form):
 | 
				
			||||||
    csv_file = forms.FileField()
 | 
					    csv_file = forms.FileField()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class PurchaseForm(forms.ModelForm):
 | 
				
			||||||
 | 
					    class Meta:
 | 
				
			||||||
 | 
					        model = Sale
 | 
				
			||||||
 | 
					        fields = [
 | 
				
			||||||
 | 
					            "customer",
 | 
				
			||||||
 | 
					            "date",
 | 
				
			||||||
 | 
					            "phone",
 | 
				
			||||||
 | 
					            "description",
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					        widgets = {
 | 
				
			||||||
 | 
					            'date': DateInput(attrs={'type': 'date'})
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class PurchaseLineForm(forms.ModelForm):
 | 
				
			||||||
 | 
					    class Meta:
 | 
				
			||||||
 | 
					        model = SaleLine
 | 
				
			||||||
 | 
					        fields = [
 | 
				
			||||||
 | 
					            "product",
 | 
				
			||||||
 | 
					            "quantity",
 | 
				
			||||||
 | 
					            "unit_price",
 | 
				
			||||||
 | 
					            "description",
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LineaFormSet = forms.models.inlineformset_factory(
 | 
				
			||||||
 | 
					    Sale,
 | 
				
			||||||
 | 
					    SaleLine,
 | 
				
			||||||
 | 
					    extra=2,
 | 
				
			||||||
 | 
					    fields='__all__'
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					<!doctype html>
 | 
				
			||||||
 | 
					<form method="POST">
 | 
				
			||||||
 | 
					    {% csrf_token %}
 | 
				
			||||||
 | 
					        {{ sale_form}}
 | 
				
			||||||
 | 
					  {{ linea_formset.management_form }}
 | 
				
			||||||
 | 
					  {% for form in linea_formset %}
 | 
				
			||||||
 | 
					    <table style="border: solid 1px blue; margin: 10px">
 | 
				
			||||||
 | 
					        {{ form.as_table }}
 | 
				
			||||||
 | 
					    </table>
 | 
				
			||||||
 | 
					    {% endfor %}
 | 
				
			||||||
 | 
					    <br/><button name="form" type="submit" >Comprar</button>
 | 
				
			||||||
 | 
					</form>
 | 
				
			||||||
@@ -6,6 +6,7 @@ app_name = 'don_confiao'
 | 
				
			|||||||
urlpatterns = [
 | 
					urlpatterns = [
 | 
				
			||||||
    path("", views.index, name="wellcome"),
 | 
					    path("", views.index, name="wellcome"),
 | 
				
			||||||
    path("comprar", views.buy, name="buy"),
 | 
					    path("comprar", views.buy, name="buy"),
 | 
				
			||||||
 | 
					    path("comprar_django", views.django_buy, name="django_buy"),
 | 
				
			||||||
    path("compras", views.purchases, name="purchases"),
 | 
					    path("compras", views.purchases, name="purchases"),
 | 
				
			||||||
    path("productos", views.products, name="products"),
 | 
					    path("productos", views.products, name="products"),
 | 
				
			||||||
    path("importar_productos", views.import_products, name="import_products")
 | 
					    path("importar_productos", views.import_products, name="import_products")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@ from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
 | 
				
			|||||||
from django.template import loader
 | 
					from django.template import loader
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .models import Sale, Product, ProductCategory
 | 
					from .models import Sale, Product, ProductCategory
 | 
				
			||||||
from .forms import ImportProductsForm
 | 
					from .forms import ImportProductsForm, PurchaseForm, LineaFormSet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import csv
 | 
					import csv
 | 
				
			||||||
import io
 | 
					import io
 | 
				
			||||||
@@ -16,11 +16,23 @@ def buy(request):
 | 
				
			|||||||
    context = {}
 | 
					    context = {}
 | 
				
			||||||
    if request.POST:
 | 
					    if request.POST:
 | 
				
			||||||
        raise Exception(request.POST)
 | 
					        raise Exception(request.POST)
 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        raise Exception(request.POST)
 | 
					 | 
				
			||||||
    return render(
 | 
					    return render(
 | 
				
			||||||
        request, 'don_confiao/purchase.html', context)
 | 
					        request, 'don_confiao/purchase.html', context)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def django_buy(request):
 | 
				
			||||||
 | 
					    if request.method == "POST":
 | 
				
			||||||
 | 
					        raise Exception(request.POST)
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        sale_form = PurchaseForm()
 | 
				
			||||||
 | 
					        sale_linea_form = LineaFormSet()
 | 
				
			||||||
 | 
					    return render(
 | 
				
			||||||
 | 
					        request,
 | 
				
			||||||
 | 
					        'don_confiao/django_purchase.html',
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            'sale_form': sale_form,
 | 
				
			||||||
 | 
					            'linea_formset': sale_linea_form
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def purchases(request):
 | 
					def purchases(request):
 | 
				
			||||||
    purchases = Sale.objects.all()
 | 
					    purchases = Sale.objects.all()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user