diff --git a/webpizza/applipizza/forms.py b/webpizza/applipizza/forms.py new file mode 100644 index 0000000000000000000000000000000000000000..4dbf2062e0f3f65e5bf298b5c5acee1ac7334eec --- /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 0000000000000000000000000000000000000000..bafed8c795d689efc47becabac45072424d3a3f2 --- /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 12b49acec53f2928ea533dbaddcfd3dd5789733f..5aacd2ee72d41063f1afb28195b846cbd6a6a453 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 68305d99b3171ed14231e6d432fe44ee2c91543c..2464b72a921e76d631aff15b9742d2c812f9552a 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) ]