From d74ac5cab08e6c231de72cdfd5fb5d959a187596 Mon Sep 17 00:00:00 2001 From: Sofiane Lasri <alasri250@gmail.com> Date: Mon, 15 May 2023 11:39:57 +0200 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20du=20formulaire=20de=20cr=C3=A9?= =?UTF-8?q?ation=20d'ingr=C3=A9dient.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webpizza/applipizza/forms.py | 9 +++ .../formulaireCreationIngredient.html | 70 +++++++++++++++++++ webpizza/applipizza/views.py | 12 +++- webpizza/webpizza/urls.py | 3 +- 4 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 webpizza/applipizza/forms.py create mode 100644 webpizza/applipizza/templates/applipizza/formulaireCreationIngredient.html diff --git a/webpizza/applipizza/forms.py b/webpizza/applipizza/forms.py new file mode 100644 index 0000000..4dbf206 --- /dev/null +++ b/webpizza/applipizza/forms.py @@ -0,0 +1,9 @@ +from django.forms import ModelForm + +from applipizza.models import Ingredient + + +class IngredientForm(ModelForm): + class Meta: + model = Ingredient + fields = ['nom'] \ No newline at end of file diff --git a/webpizza/applipizza/templates/applipizza/formulaireCreationIngredient.html b/webpizza/applipizza/templates/applipizza/formulaireCreationIngredient.html new file mode 100644 index 0000000..bafed8c --- /dev/null +++ b/webpizza/applipizza/templates/applipizza/formulaireCreationIngredient.html @@ -0,0 +1,70 @@ +{% extends 'applipizza/base.html' %} + +{% load static %} + +{% block title %} + Lasri Del Arte - Ajouter un ingrédient +{% endblock %} + +{% block content %} + <div class="container"> + <h2>Ajouter un ingrédient</h2> + <p>Renseigner le nom de l'ingrédient à ajouter.</p> + + <form action="" method="post" class="form-stacked"> + {% csrf_token %} + {% for field in form %} + {% if field.errors %} + <div class="clearfix error"> + <label for="{{ field.id_for_label }}">{{ field.label }}</label> + <div class="input"> + {{ field }} + <span class="help-inline"> + {% for error in field.errors %} + {{ error }} + {% endfor %} + </span> + </div> + {% else %} + <div class="clearfix"> + <label for="{{ field.id_for_label }}">{{ field.label }}</label> + <div class="input"> + {{ field }} + </div> + </div> + {% endif %} + {% endfor %} + <div class="actions"> + <input type="submit" value="Ajouter" class="btn primary"> + <button type="reset" class="btn">Annuler</button> + </div> + </form> + </div> +{% endblock %} +{% block javascripts %} + <script type="text/javascript"> + var form = $('form'); + var formRequiredFields = form.find('input[required]'); + var formSubmitButton = form.find('input[type=submit]'); + + // We disable form validation + form.attr('novalidate', 'novalidate'); + form.submit(function (e) { + formRequiredFields.each(function () { + if ($(this).val() == '') { + console.log('empty'); + e.preventDefault(); + $(this).parent().append('<span class="help-inline">Ce champ est obligatoire</span>'); + $(this).parent().parent().addClass('error'); + } else { + if ($(this).parent().find('span.help-inline').length > 0) { + $(this).parent().find('span.help-inline').remove(); + $(this).parent().parent().removeClass('error'); + } + } + }); + }); + // We disable the submit button + //formSubmitButton.attr('disabled', 'disabled'); + </script> +{% endblock %} \ No newline at end of file diff --git a/webpizza/applipizza/views.py b/webpizza/applipizza/views.py index 12b49ac..5aacd2e 100644 --- a/webpizza/applipizza/views.py +++ b/webpizza/applipizza/views.py @@ -1,6 +1,6 @@ from django.shortcuts import render from applipizza.models import Pizza, Ingredient, Composition - +from applipizza.forms import IngredientForm # Create your views here. def pizzas(request): @@ -25,3 +25,13 @@ def pizza(request, id): 'applipizza/pizza.html', {'pizza': pizza} ) + + +def formulaireCreationIngredient(request): + formulaire = IngredientForm() + + return render( + request, + 'applipizza/formulaireCreationIngredient.html', + {"form": formulaire} + ) diff --git a/webpizza/webpizza/urls.py b/webpizza/webpizza/urls.py index 68305d9..2464b72 100644 --- a/webpizza/webpizza/urls.py +++ b/webpizza/webpizza/urls.py @@ -21,5 +21,6 @@ from applipizza import views urlpatterns = [ path('admin/', admin.site.urls), path('pizzas/', views.pizzas), - path('pizza/<int:id>', views.pizza) + path('pizza/<int:id>', views.pizza), + path('ingredients/add', views.formulaireCreationIngredient) ] -- GitLab