Index: trunk/www/ordipourtous/migrations/__init__.py =================================================================== diff -u --- trunk/www/ordipourtous/migrations/__init__.py (revision 0) +++ trunk/www/ordipourtous/migrations/__init__.py (revision 12) @@ -0,0 +1 @@ \ No newline at end of file Index: trunk/www/ordipourtous/templatetags/myfilters.py =================================================================== diff -u --- trunk/www/ordipourtous/templatetags/myfilters.py (revision 0) +++ trunk/www/ordipourtous/templatetags/myfilters.py (revision 12) @@ -0,0 +1,11 @@ +from django import template + +register = template.Library() +@register.filter(name='field_type') +def field_type(field, ftype): + try: + t = field.field.widget.__class__.__name__ + return t.lower() == ftype + except: + pass + return False Index: trunk/www/ordipourtous/templates/givenitems.html =================================================================== diff -u --- trunk/www/ordipourtous/templates/givenitems.html (revision 0) +++ trunk/www/ordipourtous/templates/givenitems.html (revision 12) @@ -0,0 +1,25 @@ +{% extends "ordi-pour-tous-base.html" %} +{% load static %} +{% load myfilters %} +{% load crispy_forms_tags %} + +{% block content %} + {% crispy form %} + + + +{% endblock content %} Index: trunk/www/ordipourtous/migrations/0004_auto_20200415_1558.py =================================================================== diff -u --- trunk/www/ordipourtous/migrations/0004_auto_20200415_1558.py (revision 0) +++ trunk/www/ordipourtous/migrations/0004_auto_20200415_1558.py (revision 12) @@ -0,0 +1,33 @@ +# Generated by Django 3.0.5 on 2020-04-15 15:58 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ordipourtous', '0003_auto_20200415_1555'), + ] + + operations = [ + migrations.AlterField( + model_name='givenitems', + name='email', + field=models.EmailField(max_length=254, verbose_name='Courriel'), + ), + migrations.AlterField( + model_name='givenitems', + name='phone', + field=models.CharField(max_length=128, null=True, verbose_name='Téléphone'), + ), + migrations.AlterField( + model_name='neededitems', + name='email', + field=models.EmailField(max_length=254, verbose_name='Courriel'), + ), + migrations.AlterField( + model_name='neededitems', + name='phone', + field=models.CharField(max_length=128, null=True, verbose_name='Téléphone'), + ), + ] Index: trunk/www/ordipourtous/urls.py =================================================================== diff -u --- trunk/www/ordipourtous/urls.py (revision 0) +++ trunk/www/ordipourtous/urls.py (revision 12) @@ -0,0 +1,10 @@ +from django.urls import path, include +from .views import OrdipourtousView, GivenItemsView, ToBeContinuedView, AProposView + +urlpatterns = [ + path('', OrdipourtousView.as_view(), name='ordipourtous'), + path('apropos', AProposView.as_view(), name='apropos'), + path('asuivre', ToBeContinuedView.as_view(), name='asuivre'), + path('jedonne', GivenItemsView.as_view(), name='jedonne'), +] + Index: trunk/www/ordipourtous/migrations/0001_initial.py =================================================================== diff -u --- trunk/www/ordipourtous/migrations/0001_initial.py (revision 0) +++ trunk/www/ordipourtous/migrations/0001_initial.py (revision 12) @@ -0,0 +1,38 @@ +# Generated by Django 3.0.5 on 2020-04-15 13:47 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='GivenItems', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('computer_ok', models.BooleanField()), + ('computer_nok', models.BooleanField()), + ('printer_ok', models.BooleanField()), + ('screen_ok', models.BooleanField()), + ('other', models.BooleanField()), + ('comments', models.TextField(max_length=512)), + ], + ), + migrations.CreateModel( + name='NeededItems', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('computer_ok', models.BooleanField()), + ('printer_ok', models.BooleanField()), + ('screen_ok', models.BooleanField()), + ('something_is_broken', models.BooleanField()), + ('other', models.BooleanField()), + ('comments', models.TextField(max_length=512)), + ], + ), + ] Index: trunk/www/ordipourtous/templates/home.html =================================================================== diff -u --- trunk/www/ordipourtous/templates/home.html (revision 0) +++ trunk/www/ordipourtous/templates/home.html (revision 12) @@ -0,0 +1,13 @@ +{% extends "ordi-pour-tous-base.html" %} +{% load static %} + +{% block content %} +
+
+ +
+
+ +
+
+{% endblock content %} Index: trunk/www/static/images/logo-accrosys-57x81.png =================================================================== diff -u Binary files differ Index: trunk/www/manage.py =================================================================== diff -u --- trunk/www/manage.py (revision 0) +++ trunk/www/manage.py (revision 12) @@ -0,0 +1,21 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'www.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() Index: trunk/www/ordipourtous/migrations/0002_auto_20200415_1349.py =================================================================== diff -u --- trunk/www/ordipourtous/migrations/0002_auto_20200415_1349.py (revision 0) +++ trunk/www/ordipourtous/migrations/0002_auto_20200415_1349.py (revision 12) @@ -0,0 +1,25 @@ +# Generated by Django 3.0.5 on 2020-04-15 13:49 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ordipourtous', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='givenitems', + name='contact', + field=models.TextField(default='', max_length=128), + preserve_default=False, + ), + migrations.AddField( + model_name='neededitems', + name='contact', + field=models.TextField(default='-', max_length=128), + preserve_default=False, + ), + ] Index: trunk/www/www/urls.py =================================================================== diff -u --- trunk/www/www/urls.py (revision 0) +++ trunk/www/www/urls.py (revision 12) @@ -0,0 +1,22 @@ +"""www URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/3.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path, include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('ordipourtous/', include('ordipourtous.urls')), +] Index: trunk/www/www/__init__.py =================================================================== diff -u --- trunk/www/www/__init__.py (revision 0) +++ trunk/www/www/__init__.py (revision 12) @@ -0,0 +1 @@ \ No newline at end of file Index: trunk/www/www/wsgi.py =================================================================== diff -u --- trunk/www/www/wsgi.py (revision 0) +++ trunk/www/www/wsgi.py (revision 12) @@ -0,0 +1,16 @@ +""" +WSGI config for www project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'www.settings') + +application = get_wsgi_application() Index: trunk/www/ordipourtous/migrations/0005_auto_20200415_1610.py =================================================================== diff -u --- trunk/www/ordipourtous/migrations/0005_auto_20200415_1610.py (revision 0) +++ trunk/www/ordipourtous/migrations/0005_auto_20200415_1610.py (revision 12) @@ -0,0 +1,33 @@ +# Generated by Django 3.0.5 on 2020-04-15 16:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ordipourtous', '0004_auto_20200415_1558'), + ] + + operations = [ + migrations.AddField( + model_name='givenitems', + name='name', + field=models.CharField(max_length=40, null=True, verbose_name='Nom/Prénom'), + ), + migrations.AddField( + model_name='neededitems', + name='name', + field=models.CharField(max_length=40, null=True, verbose_name='Nom/Prénom'), + ), + migrations.AlterField( + model_name='givenitems', + name='email', + field=models.EmailField(max_length=60, verbose_name='Courriel'), + ), + migrations.AlterField( + model_name='neededitems', + name='email', + field=models.EmailField(max_length=60, verbose_name='Courriel'), + ), + ] Index: trunk/www/ordipourtous/templates/tobecontinued.html =================================================================== diff -u --- trunk/www/ordipourtous/templates/tobecontinued.html (revision 0) +++ trunk/www/ordipourtous/templates/tobecontinued.html (revision 12) @@ -0,0 +1,6 @@ +{% extends "ordi-pour-tous-base.html" %} +{% load static %} + +{% block content %} +

Les informations ont été enregistrées, nous allons reprendre contact avec vous.

+{% endblock content %} Index: trunk/www/static/css/ordi-pour-tous.css =================================================================== diff -u --- trunk/www/static/css/ordi-pour-tous.css (revision 0) +++ trunk/www/static/css/ordi-pour-tous.css (revision 12) @@ -0,0 +1,40 @@ +body{ + font-family: 'Montserrat', sans-serif; + background: #c1c1c1; +} + +.top{ + display:flex; + flex-direction: row; + align-content: space-between; +} + +.logo{ + display:flex; + margin:auto; +} + +h1{ + display:flex; + justify-content:flex-start; +} + +.form_main_middle{ + display:flex; + flex-direction:column; + align-items:center; + margin:70px; +} + +.button_main_middle{ + width:300px; + height:40px; + margin:20px; + border: 1px black solid; + border-radius:4px; +} + +.apropos{ + display:flex; + justify-content:flex-end; +} Index: trunk/www/ordipourtous/migrations/0003_auto_20200415_1555.py =================================================================== diff -u --- trunk/www/ordipourtous/migrations/0003_auto_20200415_1555.py (revision 0) +++ trunk/www/ordipourtous/migrations/0003_auto_20200415_1555.py (revision 12) @@ -0,0 +1,101 @@ +# Generated by Django 3.0.5 on 2020-04-15 15:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ordipourtous', '0002_auto_20200415_1349'), + ] + + operations = [ + migrations.RemoveField( + model_name='givenitems', + name='contact', + ), + migrations.RemoveField( + model_name='neededitems', + name='contact', + ), + migrations.AddField( + model_name='givenitems', + name='email', + field=models.EmailField(default='-', max_length=254, verbose_name='Courriel'), + ), + migrations.AddField( + model_name='givenitems', + name='phone', + field=models.CharField(default='-', max_length=128, verbose_name='Téléphone'), + ), + migrations.AddField( + model_name='neededitems', + name='email', + field=models.EmailField(default='-', max_length=254, verbose_name='Courriel'), + ), + migrations.AddField( + model_name='neededitems', + name='phone', + field=models.CharField(default='-', max_length=128, verbose_name='Téléphone'), + ), + migrations.AlterField( + model_name='givenitems', + name='comments', + field=models.TextField(max_length=512, verbose_name='Commentaires/Précisions'), + ), + migrations.AlterField( + model_name='givenitems', + name='computer_nok', + field=models.BooleanField(verbose_name='PC/MAC fonctionnel, toutes les données seront effacées'), + ), + migrations.AlterField( + model_name='givenitems', + name='computer_ok', + field=models.BooleanField(verbose_name='PC/MAC non fonctionnel, toutes les données seront effacées'), + ), + migrations.AlterField( + model_name='givenitems', + name='other', + field=models.BooleanField(verbose_name='Autre ... (à préciser dans les commentaires)'), + ), + migrations.AlterField( + model_name='givenitems', + name='printer_ok', + field=models.BooleanField(verbose_name='Imprimante fonctionnelle'), + ), + migrations.AlterField( + model_name='givenitems', + name='screen_ok', + field=models.BooleanField(verbose_name='Ecran fonctionnel'), + ), + migrations.AlterField( + model_name='neededitems', + name='comments', + field=models.TextField(max_length=512, verbose_name='Commentaires/Précisions'), + ), + migrations.AlterField( + model_name='neededitems', + name='computer_ok', + field=models.BooleanField(verbose_name='Ordinateur complet ou PC portable'), + ), + migrations.AlterField( + model_name='neededitems', + name='other', + field=models.BooleanField(verbose_name='Autre ... (à préciser dans les commentaires)'), + ), + migrations.AlterField( + model_name='neededitems', + name='printer_ok', + field=models.BooleanField(verbose_name='Une imprimante'), + ), + migrations.AlterField( + model_name='neededitems', + name='screen_ok', + field=models.BooleanField(verbose_name='Un Ecran'), + ), + migrations.AlterField( + model_name='neededitems', + name='something_is_broken', + field=models.BooleanField(verbose_name='Quelque chose est cassé'), + ), + ] Index: trunk/www/ordipourtous/templates/apropos.html =================================================================== diff -u --- trunk/www/ordipourtous/templates/apropos.html (revision 0) +++ trunk/www/ordipourtous/templates/apropos.html (revision 12) @@ -0,0 +1,6 @@ +{% extends "ordi-pour-tous-base.html" %} +{% load static %} + +{% block content %} +A propos +{% endblock content %} Index: trunk/www/www/settings.py =================================================================== diff -u --- trunk/www/www/settings.py (revision 0) +++ trunk/www/www/settings.py (revision 12) @@ -0,0 +1,136 @@ +""" +Django settings for www project. + +Generated by 'django-admin startproject' using Django 3.0.5. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/3.0/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = '30m!gi4%622f_(2w+sbh_lh9gh)vw9tl$^j5et+0!1att=8s=l' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [ + 'www.accrosys.com', + 'ordipourtous.accrosys.com', + ] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'crispy_forms', + 'ordipourtous.apps.OrdipourtousConfig', +] + +CRISPY_TEMPLATE_PACK = 'bootstrap4' + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'www.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'www.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/3.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + + +# Password validation +# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/3.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/3.0/howto/static-files/ + +STATIC_URL = '/static/' +STATICFILES_DIRS = [ + os.path.join(BASE_DIR, 'static'), + ] + +EMAIL_HOST='smtp.gmail.com' +EMAIL_PORT=465 +EMAIL_HOST_USER='services@accrosys.com' +EMAIL_HOST_PASSWORD='7Upqu.sQ6qq.5Vxve' +EMAIL_USE_SSL=True Index: trunk/www/ordipourtous/templates/ordi-pour-tous-base.html =================================================================== diff -u --- trunk/www/ordipourtous/templates/ordi-pour-tous-base.html (revision 0) +++ trunk/www/ordipourtous/templates/ordi-pour-tous-base.html (revision 12) @@ -0,0 +1,23 @@ +{% load static %} + + + + + + + Ordi Pour Tous + + + +
+
+
+

Ordi Pour Tous

+ +
+ {% block content %} {% endblock %} +
+
+ A propos ... +
+ Index: trunk/www/ordipourtous/views.py =================================================================== diff -u --- trunk/www/ordipourtous/views.py (revision 0) +++ trunk/www/ordipourtous/views.py (revision 12) @@ -0,0 +1,60 @@ +from django.shortcuts import render +from django.http import HttpResponse, HttpResponseRedirect +from django.views.generic import TemplateView +from django.views.generic.edit import CreateView + +# Create your views here. + +class OrdipourtousView(TemplateView): + template_name = 'home.html' + +class ToBeContinuedView(TemplateView): + template_name = 'tobecontinued.html' + +class AProposView(TemplateView): + template_name = 'apropos.html' + +from .models import GivenItems + +class GivenItemsView(CreateView): + model = GivenItems + template_name = 'givenitems.html' + fields = [ 'computer_ok', 'computer_nok', 'printer_ok', 'screen_ok', 'other', 'name', 'email', 'phone', 'comments' ] + success_url = "asuivre" + + def form_valid(self, form): + self.object = form.save() + # print("success", dir(self.object), dir(form)) + from django.core.mail import send_mail + body = "" + for f in self.fields: + body += f + ':' + str(getattr(self.object, f)) + "\n" + send_mail( + '[ordipourtous] - matériel disponible - ' + " ".join(str(self.object.name)[:30].split()), + body, + 'ordipourtous@accrosys.com', + ['services@accrosys.com'], + fail_silently=False, + ) + return HttpResponseRedirect(self.get_success_url()) + + def get_form(self, form_class=None): + if form_class is None: + form_class = self.get_form_class() + form = super(GivenItemsView, self).get_form(form_class) + from crispy_forms.helper import FormHelper + form.helper = FormHelper() + + # Moving field labels into placeholders + from crispy_forms.layout import Layout, Field, Submit + form.helper.layout = Layout() + for field_name, field in form.fields.items(): + # print("get_form", field_name, field.label, dir(field), field.widget.__class__.__name__) + if field.widget.__class__.__name__.lower() not in ('checkboxinput', ): + form.helper.layout.append(Field(field_name, placeholder=field.label)) + form.fields[field_name].label = False + else: + form.helper.layout.append(Field(field_name)) + # form.helper.form_show_labels = False + form.helper.add_input(Submit('submit', 'Envoyer')) + return form Index: trunk/www/ordipourtous/apps.py =================================================================== diff -u --- trunk/www/ordipourtous/apps.py (revision 0) +++ trunk/www/ordipourtous/apps.py (revision 12) @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class OrdipourtousConfig(AppConfig): + name = 'ordipourtous' Index: trunk/www/ordipourtous/__init__.py =================================================================== diff -u --- trunk/www/ordipourtous/__init__.py (revision 0) +++ trunk/www/ordipourtous/__init__.py (revision 12) @@ -0,0 +1 @@ \ No newline at end of file Index: trunk/www/ordipourtous/admin.py =================================================================== diff -u --- trunk/www/ordipourtous/admin.py (revision 0) +++ trunk/www/ordipourtous/admin.py (revision 12) @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. Index: trunk/www/ordipourtous/templatetags/__init__.py =================================================================== diff -u --- trunk/www/ordipourtous/templatetags/__init__.py (revision 0) +++ trunk/www/ordipourtous/templatetags/__init__.py (revision 12) @@ -0,0 +1 @@ \ No newline at end of file Index: trunk/www/www/asgi.py =================================================================== diff -u --- trunk/www/www/asgi.py (revision 0) +++ trunk/www/www/asgi.py (revision 12) @@ -0,0 +1,16 @@ +""" +ASGI config for www project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'www.settings') + +application = get_asgi_application() Index: trunk/www/ordipourtous/models.py =================================================================== diff -u --- trunk/www/ordipourtous/models.py (revision 0) +++ trunk/www/ordipourtous/models.py (revision 12) @@ -0,0 +1,24 @@ +from django.db import models + +# Create your models here. +class GivenItems(models.Model): + computer_ok = models.BooleanField(verbose_name= 'PC/MAC non fonctionnel, toutes les données seront effacées') + computer_nok = models.BooleanField(verbose_name= 'PC/MAC fonctionnel, toutes les données seront effacées') + printer_ok = models.BooleanField(verbose_name= 'Imprimante fonctionnelle') + screen_ok = models.BooleanField(verbose_name='Ecran fonctionnel') + other = models.BooleanField(verbose_name='Autre ... (à préciser dans les commentaires)') + name = models.CharField(max_length=40, verbose_name='Nom/Prénom', null=True, blank=True) + email = models.EmailField(max_length=60, verbose_name='Courriel') + phone = models.CharField(max_length=128, verbose_name='Téléphone', null=True, blank=True) + comments = models.TextField(max_length=512, verbose_name='Commentaires/Précisions') + +class NeededItems(models.Model): + computer_ok = models.BooleanField(verbose_name='Ordinateur complet ou PC portable') + printer_ok = models.BooleanField('Une imprimante') + screen_ok = models.BooleanField('Un Ecran') + something_is_broken = models.BooleanField('Quelque chose est cassé') + other = models.BooleanField(verbose_name='Autre ... (à préciser dans les commentaires)') + name = models.CharField(max_length=40, verbose_name='Nom/Prénom', null=True, blank=True) + email = models.EmailField(max_length=60, verbose_name='Courriel') + phone = models.CharField(max_length=128, verbose_name='Téléphone', null=True, blank=True) + comments = models.TextField(max_length=512, verbose_name='Commentaires/Précisions') Index: trunk/www/ordipourtous/migrations/0006_auto_20200415_1646.py =================================================================== diff -u --- trunk/www/ordipourtous/migrations/0006_auto_20200415_1646.py (revision 0) +++ trunk/www/ordipourtous/migrations/0006_auto_20200415_1646.py (revision 12) @@ -0,0 +1,33 @@ +# Generated by Django 3.0.5 on 2020-04-15 16:46 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ordipourtous', '0005_auto_20200415_1610'), + ] + + operations = [ + migrations.AlterField( + model_name='givenitems', + name='name', + field=models.CharField(blank=True, max_length=40, null=True, verbose_name='Nom/Prénom'), + ), + migrations.AlterField( + model_name='givenitems', + name='phone', + field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Téléphone'), + ), + migrations.AlterField( + model_name='neededitems', + name='name', + field=models.CharField(blank=True, max_length=40, null=True, verbose_name='Nom/Prénom'), + ), + migrations.AlterField( + model_name='neededitems', + name='phone', + field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Téléphone'), + ), + ] Index: trunk/www/db.sqlite3 =================================================================== diff -u Binary files differ Index: trunk/www/ordipourtous/tests.py =================================================================== diff -u --- trunk/www/ordipourtous/tests.py (revision 0) +++ trunk/www/ordipourtous/tests.py (revision 12) @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here.