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